IT公司100題-16-層遍歷二元樹

問題描述:java

層遍歷二叉樹,同一層從左往右打印。node

定義二元查找樹的結點爲:spa

class BSTreeNode{
   BSTreeNode(int x, BSTreeNode lt, BSTreeNode rt){
      value = x;
      left = lt;
      right = rt;
   }
   int value;
   BSTreeNode left;
   BSTreeNode right;
}

例如輸入二叉樹:code

     6
 /   \
 4    12
/ \    / \
2 5 8  16rem

輸出:6 4 12 2 5 8 16。ast

分析:class

二叉樹的廣度優先遍歷。二叉樹

public void BFSTraverse(){
   if(null == root)
      return;
   Deque<BSTreeNode> deque = new ArrayDeque<BSTreeNode>();
   deque.addLast(root);
   while(!deque.isEmpty()){
      BSTreeNode node = deque.removeFirst();
      System.out.println(node.value);
      if (node.left != null)
         deque.addLast(node.left);
      if (node.right != null)
         deque.addLast(node.right);
   }
}
相關文章
相關標籤/搜索