Vertical Order Traverse

314. Binary Tree Vertical Order Traversal

# 使用一個min_idx紀錄最小的idx
def verticalOrder(self, root: TreeNode) -> List[List[int]]:
    record = defaultdict(list)
    min_idx = 0
    q = [(root, 0)]
    
    while q:
        node, idx = q.pop(0)
        if not node: continue
        min_idx = min(min_idx, idx)
        record[idx].append(node.val)
        q.append((node.left, idx-1))
        q.append((node.right, idx+1))
    
    ans = []
    
    for idx in sorted(record):
        ans.append(record[idx])
    
    return ans

987. Vertical Order Traversal of a Binary Tree

與上題不同的是,same position將按照increasing order 排列,需要紀錄x, y position的資料

Last updated

Was this helpful?