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);
   }
}
相关文章
相关标签/搜索