题目链接:从上往下打印出二叉树的每个节点,同层节点从左至右打印。
解题思路:
从上而下是用队列。
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 public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { 17 18 ArrayList<Integer> list = new ArrayList<>(); 19 ArrayList<TreeNode> queue = new ArrayList<>(); 20 if(root==null) 21 return list; 22 queue.add(root); 23 24 while(!queue.isEmpty()) 25 { 26 TreeNode node= queue.remove(0); 27 28 if(node.left!=null) 29 queue.add(node.left); 30 if(node.right!=null) 31 queue.add(node.right); 32 list.add(node.val); 33 } 34 return list; 35 36 } 37 }