题目
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
思路 + 代码
二叉树的层次遍历,用队列保存同一层次的树节点,然后依次遍历。
类似题目http://sunyunzeng.com/Leetcode-102-%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E5%B1%82%E6%AC%A1%E9%81%8D%E5%8E%86/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| import java.util.*;
public class Solution { public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) { ArrayList<Integer> list = new ArrayList<>(); Queue<TreeNode> queue = new LinkedList<>(); if(root==null) return list; queue.add(root); while(!queue.isEmpty()){ int len = queue.size(); for(int i=0; i<len; i++){ root = queue.remove(); list.add(root.val); if(root.left!=null) queue.add(root.left); if(root.right!=null) queue.add(root.right); } } return list; } }
|