从上往下打印二叉树

题目

牛客网

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

解题思路

  1. 层次遍历,通过队列进行辅助遍历
  1. public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
  2. ArrayList<Integer> res = new ArrayList<>();
  3. LinkedList<TreeNode> nodeQueue = new LinkedList<>();
  4. if (root == null) {
  5. return res;
  6. }
  7. nodeQueue.addLast(root);
  8. while (!nodeQueue.isEmpty()) {
  9. TreeNode node = nodeQueue.pollFirst();
  10. if (node == null) {
  11. continue;
  12. }
  13. nodeQueue.addLast(node.left);
  14. nodeQueue.addLast(node.right);
  15. res.add(node.val);
  16. }
  17. return res;
  18. }