难度:中等
题目描述:
给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。
示例:
二叉树:[3,9,20,null,null,15,7],
[
[3],
[9,20],
[15,7]
]
解题思路:
var levelOrder = function(root) {
if (!root) return [];
let queue = [root];
let res = [];
while (queue.length > 0) {
let currentLevel = [];
let len = queue.length;
while (len) {
let cur = queue.shift();
currentLevel.push(cur.val);
if (cur.left) queue.push(cur.left);
if (cur.right) queue.push(cur.right);
len--;
}
res.push(currentLevel);
}
return res;
};
var levelOrder = function(root) {
if(!root) return []
let res = []
dfs(root, 0, res)
return res
};
function dfs(root, step, res){
if(root){
if(!res[step]) res[step] = []
res[step].push(root.val)
dfs(root.left, step + 1, res)
dfs(root.right, step + 1, res)
}
}