vlambda博客
学习文章列表

【剑指offer】22 从上往下打印二叉树


- 题目描述

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

- 解题思路

用arraylist模拟一个队列来存储相应的TreeNode,进行层次遍历。

- Java实现

import java.util.ArrayList;/**public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null;  public TreeNode(int val) { this.val = val;  } }*/public class Solution { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { ArrayList<Integer> list = new ArrayList<>(); if (root == null) { return list; } ArrayList<TreeNode> queue = new ArrayList<>(); 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; }}