题解 | #按之字形顺序打印二叉树#
按之字形顺序打印二叉树
https://www.nowcoder.com/practice/91b69814117f4e8097390d107d2efbe0
/* function TreeNode(x) {
this.val = x;
this.left = null;
this.right = null;
} */
function Print(pRoot) {
// write code here
if (!pRoot) return [];
let result = [];
// 先进行层序遍历
// 1.队列方法
// let queue = [];
// queue.push(pRoot);
// while (queue.length !== 0) {
// let len = queue.length;
// result.push([]);
// for (let i = 0; i < len; i++) {
// let temp = queue.shift();
// result[result.length - 1].push(temp.val);
// temp.left ? queue.push(temp.left) : null;
// temp.right ? queue.push(temp.right) : null;
// }
// }
// 2.递归方法
function func(node, result, level) {
if (!node) return;
if (!result[level]) {
result[level] = [];
}
result[level].push(node.val);
func(node.left, result, level + 1);
func(node.right, result, level + 1);
}
func(pRoot, result, 0);
// 按条件倒叙
result.map((item, index) => {
if (index % 2 != 0) {
item = item.reverse();
}
return item;
});
return result;
}
module.exports = {
Print: Print,
};
