題目
給你一個二叉樹,請你返回其按 層序遍歷 得到的節點值。 (即逐層地,從左到右訪問所有節點)。
示例:
二叉樹:[3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回其層次遍歷結果:
[
[3],
[9,20],
[15,7]
]
方案:隊列
class Solution {
public List<List<Integer>> levelOrder(TreeNode root) {
int size = 1;
TreeNode tmp;
LinkedList<TreeNode> list = new LinkedList<>();
List<List<Integer>> res = new LinkedList<>();
if(root==null) return res;
list.add(root);
while(list.size()>0){
List<Integer> nums = new LinkedList<>();
size = list.size();
for(int i =0;i<size;i++){
tmp = list.removeFirst();
if(tmp.left!=null) {list.add(tmp.left);}
if(tmp.right!=null) {list.add(tmp.right);}
nums.add(tmp.val);
}
res.add(nums);
}
return res;
}
}
複雜度計算