23.从上往下打印二叉树

从上往下打印出二叉树的每个节点,同层节点从左至右打印。

实际上就是二叉树的层次遍历,需要借助要给队列,

class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

}
public class PrintFromTopToBottom {
	public ArrayList<Integer> printFromTopToBottom(TreeNode root) {
		ArrayList<Integer> list = new ArrayList<>();
		if(root == null) return list;
		Queue<TreeNode> queue = new LinkedList<>();
		queue.add(root);
		while(!queue.isEmpty())
		{
			TreeNode node = queue.poll();#出队
			list.add(node.val);
			if(node.left != null)
				queue.add(node.left);
			if(node.right != null)
				queue.add(node.right);
		}
		return list;
		
	}
}

需要注意的是队列数据结构在Java中的选取与使用。

原文地址:https://www.cnblogs.com/wxshi/p/8119870.html