二叉树的广度优先遍历
1 public void breadthFirst(){//广度优先遍历 2 TreeNode<E> p = root; 3 GenericQueue<TreeNode<E>> queue = new GenericQueue<TreeNode<E>>(); 4 if(p != null){ 5 queue.enqueue(p); 6 while(queue.getSize() != 0){ 7 p = queue.dequeue(); 8 System.out.print(p.element + " "); 9 if(p.left != null) 10 queue.enqueue(p.left); 11 if(p.right != null) 12 queue.enqueue(p.right); 13 } 14 } 15 }
1,用到一个队列(先进先出),根节点进入队列;
2,从队列中取出一个节点,输出节点,将此节点的左孩子节点(不为空)和右孩子节点(不为空)进入队列;
3,重复执行第2步,直至队列为空。

浙公网安备 33010602011771号