基本資料#
難易度: medium 第一次嘗試:2022-11-18
- 提交紀錄:Accepted ×2
解題思路#
跟 LC 102 一樣一層一層收集(Tree 模板二),最後把整個結果反轉,就變成從最下面那層開始。
我的解法#
class Solution:
def levelOrderBottom(self, root: Optional[TreeNode]) -> List[List[int]]:
res, level = [], [root] if root else []
while level:
res.append([n.val for n in level])
level = [c for n in level for c in (n.left, n.right) if c]
return res[::-1]
複雜度#
時間 O(n),空間 O(n)。
要特別避免的錯誤#
- 反轉的是層的順序,每層裡面還是由左到右。
面試口說整理#
我照一般的 BFS 一層一層收集,最後把層的順序反轉。時間 O(n)。
