题解 | #按之字形顺序打印二叉树#
按之字形顺序打印二叉树
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, };