将图示的二叉树按照层次遍历,即得到遍历顺序为 8,6,10,5,7,9,11
思想:
打印节点,如果该节点为空,则返回。
否则打印该节点,如果该节点存在孩子节点则存入队列,直到无孩子节点
代码:
节点结构:
class TreeNode{
TreeNode left;
TreeNode right;
int value;
public TreeNode(int value) {
this.value=value;
this.left=null;
this.right=null;
}
}
函数代码:
public class LevelTravelTree {
public void lvTravel(TreeNode root){
Queue<TreeNode> queues = new LinkedList<TreeNode>() ;
//队列存储二叉树
//如果二叉树为空 返回
if(root == null)
return;
//否则 打印该节点
TreeNode current = null;
queues.add(root);
while(!queues.isEmpty()){
current = queues.poll();//返回队列的头部
System.out.print(current.value+" ");
//如果该节点存在孩子节点,则放入队列,直到没有孩子节点为止
if(current.left!=null){
queues.add(current.left);
}
if(current.right!=null){
queues.add(current.right);
}
}
}