Algorithm I 筆記撰寫計畫 第十一天第一題,共三題。
- 難度:
Easy
- 花費時間: 10 min
- 題目: 102. Binary Tree Level Order Traversal
給你一個 Binary Tree
,按照層級遍歷他,並回傳遍歷值的結果。
點我開啟限制與範例
限制:
- The number of nodes in the tree is in the range
[0, 2000]
. -1000 <= Node.val <= 1000
Example 1:
1 | Input: root = [3,9,20,null,null,15,7] |
Example 2:
1 | Input: root = [1] |
Example 3:
1 | Input: root = [] |
筆記
定義:
res
: 答案陣列stacks
: 等待處理的節點陣列depth
: 節點的深度
步驟:
- 把節點放到
stacks
,設定深度為0
(一點都不深) - 進入迴圈,直到
stacks
沒有存貨- 拿出
stacks
最後一個node
- 拿出深度
- 把
node.val
放進res
- 塞入
node.right
至res
(深度加一) - 塞入
node.left
至res
(深度加一)
- 拿出
- 回傳
res
程式
1 | function levelOrder(root: TreeNode | null): number[][] { |
成績
<!-- Language | Runtime | Beats | Memory Usage | Beats |
---|---|---|---|---|
TS iterative | 91 ms | 74.63% | 44.7 MB | 18.41% |
TS recursive | 80 ms | 82.21% | 43.9 MB | 87.98% --> |