3 从上到下打印二叉树II
//在I的基础上,附带了一个层数的参数
var levelOrder = function(root) {
if(!root) return [];
let tree = [];
let tmp = [];
tmp.push(root);
tmp.push(0);
tree.push(tmp);
let res = [];
while(tree.length!==0){
let tmp = tree.shift();
if(tmp[1]<res.length){
res[tmp[1]].push(tmp[0].val);
}
else{
let store = [];
store.push(tmp[0].val);
res.push([store]);
}
if(tmp[0].left){
tree.push([tmp[0].left,tmp[1]+1]);
}
if(tmp[0].right){
tree.push([tmp[0].right,tmp[1]+1]);
}
}
return res;
};
32. 从上到下打印二叉树
//单数行reverse即可。记住Array.reverse()的库函数,此函数直接改变原数组。
var levelOrder = function(root) {
if(!root) return [];
let tree = [];
let tmp = [];
tmp.push(root);
tmp.push(0);
tree.push(tmp);
let res = [];
while(tree.length!==0){
let tmp = tree.shift();
if(tmp[1]<res.length){
res[tmp[1]].push(tmp[0].val);
}
else{
let store = [];
store.push(tmp[0].val);
res.push([store]);
}
if(tmp[0].left){
tree.push([tmp[0].left,tmp[1]+1]);
}
if(tmp[0].right){
tree.push([tmp[0].right,tmp[1]+1]);
}
}
for(let i = 1;i<res.length;i+=2){
res[i].reverse();
}
return res;
};