Dashboard Temp Share Shortlinks Frames API

HTMLify

day29.py
Views: 7 | Author: prakhardoneria
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from collections import deque

class Solution:
    def topView(self, root):
        if not root:
            return []
            
        top_view_map = {}
        
        queue = deque([(root, 0)])
        
        while queue:
            node, hd = queue.popleft()
            
            if hd not in top_view_map:
                top_view_map[hd] = node.data
                
            if node.left:
                queue.append((node.left, hd - 1))
            if node.right:
                queue.append((node.right, hd + 1))
                
        sorted_keys = sorted(top_view_map.keys())
        return [top_view_map[key] for key in sorted_keys]