题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印。
思路:二叉树按层遍历。。。。
/** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { ArrayList<Integer> res=new ArrayList<Integer>(); if(root==null) return res; else{ ArrayDeque<TreeNode> temp=new ArrayDeque<TreeNode>(); //维护一个队列 temp.offer(root); while(temp.size()>0){ TreeNode t=temp.poll(); res.add(t.val); if(t.left!=null){ temp.offer(t.left); } if(t.right!=null){ temp.offer(t.right); } } return res; } }