987. 二元樹的垂直順序遍歷
HardVertical Order Traversal of a Binary Tree
TreeDepth-First SearchBinary TreeHash TableSorting
解法思路
- DFS 走訪整棵樹,根節點從 (row=0, col=0) 出發,左子 col-1、右子 col+1
- 每個節點將 (row, val) 加入字典 d[col] 的清單
- DFS 結束後,對所有欄位 col 從小到大排序
- 每欄內對 (row, val) tuple 清單排序(Python tuple 自動先比 row 再比 val)
- 取出每欄的 val 清單加入 ans,回傳
複雜度分析
- 時間複雜度:O(n log n)
- 空間複雜度:O(n)
演算法開始。建立字典 d,以欄位 c 為鍵,記錄各欄節點的 (row, val) 清單。從 dfs(root, r=0, c=0) 出發。
1 / 12