面试集合剑指offer——从上往下打印二叉树

算法小能手

发布日期: 2019-02-11 14:16:21 浏览量: 126
评分:
star star star star star star star star star star_border
*转载请注明来自write-bug.com

题目描述

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

思路简述

  1. 根节点放到队列里面,队列不空,就打印队列头,打印这个节点,马上把这个节点的左右子节点放到队列中。
  2. 再要访问一个节点,把这个节点的左右放入,此时队头是同层的,队尾是打印出来的左右。

代码实现

  1. import java.util.ArrayList;
  2. import java.util.LinkedList;
  3. public class Solution {
  4. public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {
  5. ArrayList<Integer> layerList = new ArrayList<Integer>();
  6. if (root == null)
  7. return layerList;
  8. LinkedList<TreeNode> queue = new LinkedList<TreeNode>();
  9. queue.add(root);
  10. while (!queue.isEmpty()) {
  11. TreeNode node = queue.poll();
  12. layerList.add(node.val);
  13. if (node.left != null)
  14. queue.addLast(node.left);
  15. if (node.right != null)
  16. queue.addLast(node.right);
  17. }
  18. return layerList;
  19. }
  20. }
上传的附件

发送私信

13
文章数
4
评论数
eject