题解 | #按之字形顺序打印二叉树#
按之字形顺序打印二叉树
https://www.nowcoder.com/practice/91b69814117f4e8097390d107d2efbe0
/* * function TreeNode(x) { * this.val = x; * this.left = null; * this.right = null; * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param pRoot TreeNode类 * @return int整型二维数组 */ function Print(pRoot) { // write code here if (!pRoot) { return []; } const result = []; const traversal = (node, level = 0) => { if (!result[level]) { result[level] = []; } result[level].push(node.val); if (node.left || node.right) { level++; } if (node.left) { traversal(node.left, level); } if (node.right) { traversal(node.right, level); } }; traversal(pRoot); result.forEach((item, i) => { if (i % 2 !== 0) { item.reverse(); } }); return result; } module.exports = { Print: Print, };
j解题思路:在层序遍历的基础上,把二维数组中序号i%2 === 1的数组元素进行翻转
#按之字形顺序打印二叉树#