题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
解答:
思路:用队列的结构正好符合题目要求,每取出一棵子树的根节点就加入他的子节点,直到队列中没有元素,LinkedList实现了queue的接口。
public class Q_22 {
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { ArrayList<Integer> list = new ArrayList<Integer>(); if (root == null) { return list; } Queue<TreeNode> queue = new LinkedList<TreeNode>(); queue.offer(root); while (!queue.isEmpty()) { TreeNode out = queue.poll(); list.add(out.val); if (out.left != null) { queue.offer(out.left); } if (out.right != null) { queue.offer(out.right); } } return list; }
}