从上往下打印二叉树

题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左按照从左到右的顺序打印。

思路:使用队列。广度优先遍历二叉树。不管是广度优先遍历一个有向图还是一棵树,都要用到队列。第一步我们把起始节点(对树而言是根结点)放入队列中。接下来每一次从队列的头部取出一个结点,遍历这个结点之后把它能到达的结点(对树而言是子节点)都依次放入对列。重复这个遍历过程,直到队列中的结点全部被遍历为止。

package offer;

import java.util.LinkedList;
import java.util.Queue;

public class PrintFromTopToBottom {
	
	public static void printFromTopToBottom(BinaryTreeNode root){
		if(root==null) return;
		Queue<BinaryTreeNode> queue = new LinkedList<BinaryTreeNode>();
		queue.add(root);
		while(!queue.isEmpty()){
			BinaryTreeNode node = queue.poll();
			System.out.println(node.val);
			if(node.left!=null)
				queue.add(node.left);
			if(node.right!=null)
				queue.add(node.right);
		}
	}

}


你可能感兴趣的:(java,二叉树,遍历)