Problem:
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
Intuition:
要实现按层打印,只需要将左右节点存到一个队列里面,按顺序打印即可
Solution:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| public class CodingInterview_032 { class TreeNode{ int val; TreeNode left; TreeNode right; TreeNode(int val){ this.val=val; } }
public class Solution { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { ArrayList<Integer> list = new ArrayList<>(); ArrayList<TreeNode> queue = new ArrayList<>(); if (root == null) { return list; } queue.add(root); while (queue.size() != 0) { TreeNode temp = queue.remove(0); if (temp.left != null){ queue.add(temp.left); } if (temp.right != null) { queue.add(temp.right); } list.add(temp.val); } return list; } } }
|