给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。
例如,给定一个 3叉树 :
返回其层序遍历:
[
[1],
[3,2,4],
[5,6]
]
说明:
树的深度不会超过 1000。
树的节点总数不会超过 5000。
/**
* // Definition for a Node.
* function Node(val,children) {
* this.val = val;
* this.children = children;
* };
*/
/**
* @param {Node} root
* @return {number[][]}
*/
var levelOrder = function(root) {
const q = [];
const res = [];
if(!root) return q;
let h=0;
root.height = h;
q.push(root);
while(q.length !== 0) {
const top = q.shift();
const h = top.height;
if(!res[h]) {
res[h] = [];
}
res[h].push(top.val);
for(let child of top.children) {
child.height = h + 1;
q.push(child);
}
}
return res;
};