Binary Tree Level Order Traversal
MediumTreeBreadth-First SearchBinary Tree
Solution
import { TreeNode } from '@algorithm/lib';
export function levelOrder(root: TreeNode | null): number[][] {
if (root === null) {
return [];
}
const answer: number[][] = [];
let currentNodes: TreeNode[] = [root];
while (0 < currentNodes.length) {
const values: number[] = [];
const nextNodes: TreeNode[] = [];
for (const currentNode of currentNodes) {
values.push(currentNode.val);
currentNode.left && nextNodes.push(currentNode.left);
currentNode.right && nextNodes.push(currentNode.right);
}
answer.push(values);
currentNodes = nextNodes;
}
return answer;
}