Given a binary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level).
For example:
Given binary tree [3,9,20,null,null,15,7]
,
return its level order traversal as:
1 2 3 4 5
|
[ [3], [9,20], [15,7] ]
|
Solution
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
|
* Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class { public List<List<Integer>> levelOrder(TreeNode root) { LinkedList<TreeNode> search = new LinkedList<TreeNode>(); List<List<Integer>> res = new ArrayList<List<Integer>>(); if(root==null) return res; search.add(root); while(!search.isEmpty()){ int currentSize = search.size(); List<Integer> subList = new ArrayList<Integer>(); for(int i=0; i<currentSize;i++){ TreeNode node = search.poll(); subList.add(node.val); if(node.left!=null) search.offer(node.left); if(node.right!=null) search.offer(node.right); } res.add(subList); } return res; } }
|
近期评论