Binary Tree Zigzag Level Order Traversal
MediumTreeBreadth-First SearchBinary Tree
Solution
import { TreeNode } from '@algorithm/lib';
export function zigzagLevelOrder(root: TreeNode | null): number[][] {
if (!root) {
return [];
}
const answer: number[][] = [];
function levelorder(node: TreeNode, level: number) {
if (answer.length <= level) {
answer.push([]);
}
answer[level].push(node.val);
node.left && levelorder(node.left, level + 1);
node.right && levelorder(node.right, level + 1);
}
levelorder(root, 0);
return answer.map((row, i) => (i % 2 === 0 ? row : row.reverse()));
}