從上到下打印出二叉樹的每個節點,同一層的節點按照從左到右的順序打印。
例如:
給定二叉樹: [3,9,20,null,null,15,7],
3/ \9 20/ \15 7
返回:
[3,9,20,15,7]
提示:
節點總數 <= 1000
解題思路
使用隊列實現層序遍歷
代碼
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/
class Solution {public int[] levelOrder(TreeNode root) {List<Integer> res=new ArrayList<>();Queue<TreeNode> queue=new LinkedList<>();if(root==null) return new int[0];queue.add(root);while(!queue.isEmpty()){int size=queue.size();for(int i=0;i<size;i++){TreeNode cur=queue.poll();res.add(cur.val);if(cur.left!=null) queue.add(cur.left);if(cur.right!=null) queue.add(cur.right);}}int[] ret=new int[res.size()];for(int i=0;i<res.size();i++){ret[i]=res.get(i);}return ret;}
}