题目
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
解题思路
- 层次遍历,通过队列进行辅助遍历
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
ArrayList<Integer> res = new ArrayList<>();
LinkedList<TreeNode> nodeQueue = new LinkedList<>();
if (root == null) {
return res;
}
nodeQueue.addLast(root);
while (!nodeQueue.isEmpty()) {
TreeNode node = nodeQueue.pollFirst();
if (node == null) {
continue;
}
nodeQueue.addLast(node.left);
nodeQueue.addLast(node.right);
res.add(node.val);
}
return res;
}