102. Binary Tree Level Order Traversal
Leetcode
題目
Input: root = [3,9,20,null,null,15,7]
Output: [[3],[9,20],[15,7]]Input: root = [1]
Output: [[1]]Input: root = []
Output: []解答
Last updated
Input: root = [3,9,20,null,null,15,7]
Output: [[3],[9,20],[15,7]]Input: root = [1]
Output: [[1]]Input: root = []
Output: []Last updated
var levelOrder = function(root) {
if(root === null) return [];
const res = [];
root.level = 0;
const stack = [root];
while(stack.length) {
const node = stack.pop();
const level = node.level;
if (res[level]) {
res[level].push(node.val);
} else {
res[level] = [node.val];
}
if (node.right) {
node.right.level = level + 1;
stack.push(node.right);
}
if (node.left) {
node.left.level = level + 1;
stack.push(node.left);
}
}
return res;
};var levelOrder = function(root) {
if(root === null) return [];
const res = [];
const stack = [root];
const helper = (node, level) => {
if (res[level]) {
res[level].push(node.val);
} else {
res[level] = [node.val];
}
if (node.left) {
helper(node.left, level + 1);
}
if (node.right) {
helper(node.right, level + 1);
}
}
helper(root, 0)
return res;
};var levelOrder = function(root) {
if(root === null) return [];
const res = [];
let level = 0;
const queue = [root];
while(queue.length) {
res.push([]);
const len = queue.length;
for(let i=0; i<len; i++) {
const node = queue.shift();
res[level].push(node.val);
if (node.left) {
queue.push(node.left);
}
if (node.right) {
queue.push(node.right);
}
}
level++;
}
return res;
};