剑指offer_从上往下打印二叉树
题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
例如,以下二叉树层次遍历的结果为:1,2,3,4,5,6,7

解题思路就是使用一个队列,第一次入队根节点,之后一直循环直到队列为空,每次弹出队列第一个元素并添加第一个元素的左右节点。
1 import java.util.ArrayList; 2 /** 3 public class TreeNode { 4 int val = 0; 5 TreeNode left = null; 6 TreeNode right = null; 7 8 public TreeNode(int val) { 9 this.val = val; 10 11 } 12 13 } 14 */ 15 public class Solution { 16 ArrayList<TreeNode> arr = new ArrayList<>(); 17 ArrayList<Integer> ans = new ArrayList<>(); 18 public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { 19 if(root == null) return ans; 20 arr.add(root); 21 while(!arr.isEmpty()){ 22 TreeNode memo = arr.remove(0); 23 ans.add(memo.val); 24 if(memo.left!=null) arr.add(memo.left); 25 if(memo.right!=null) arr.add(memo.right); 26 27 } 28 return ans; 29 } 30 }

浙公网安备 33010602011771号