102. Binary Tree Level Order Traversal
June 24, 2025
04:32 AM
No headings found
Loading content...
No headings found
Problem
Bài toán yêu cầu duyệt binary tree theo từng tầng (level order), nghĩa là in ra các node từ trái → phải, từng tầng 1. Kết quả trả về là một mảng 2 chiều, mỗi mảng con là các giá trị node ở cùng một tầng
Approach
Time and space complexity
Solution
1/**
2 * Definition for a binary tree node.
3 * class TreeNode {
4 * val: number
5 * left: TreeNode | null
6 * right: TreeNode | null
7 * constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
8 * this.val = (val===undefined ? 0 : val)
9 * this.left = (left===undefined ? null : left)
10 * this.right = (right===undefined ? null : right)
11 * }
12 * }
13 */
14
15function levelOrder(root: TreeNode | null): number[][] {
16 if(!root) return []
17
18 let res: number[][] = [];
19 const queue: (TreeNode | null)[] = [root];
20 while (queue.length > 0) {
21 const level_size = queue.length;
22 const curr_level: number[] = [];
23 for (let i = 0; i < level_size; i++) {
24 const node = queue.shift()!;
25 curr_level.push(node.val);
26 if (node.left) queue.push(node.left);
27 if (node.right) queue.push(node.right);
28 }
29 res.push(curr_level)
30 }
31 return res
32};