解析思路:利用层序遍历+队列来实现,一层一层的遍历
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/
class Solution {public List<List<Integer>> levelOrder(TreeNode root) {List<List<Integer>> res = new ArrayList<>();if(root == null){return res;}Queue<TreeNode> q = new LinkedList<>();q.offer(root);while(!q.isEmpty()){int size = q.size();List<Integer> list = new ArrayList<>();for(int i = 0; i < size; i++){TreeNode cur = q.poll();list.add(cur.val);if(cur.left != null){q.offer(cur.left);}if(cur.right != null){q.offer(cur.right);}}res.add(list);}return res;}
}
/*** 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) {if(root == null){return new int[0];}List<Integer> res = new ArrayList<>();Queue<TreeNode> q = new LinkedList<>();q.offer(root);while(!q.isEmpty()){TreeNode cur = q.poll();res.add(cur.val);if(cur.left != null){q.offer(cur.left);}if(cur.right != null){q.offer(cur.right);}}int[] ans = new int[res.size()];for(int i = 0; i < res.size();i++){ans[i] = res.get(i);}//int[] ans = res.stream().mapToInt(Integer::intValue).toArray();return ans;}
}