Top View of Binary Tree
Problem Link: https://practice.geeksforgeeks.org/problems/top-view-of-binary-tree/1
class Solution:
#Function to return a list of nodes visible from the top view
#from left to right in Binary Tree.
def topView(self,root):
minn=float('inf')
maxx=float('-inf')
d={}
q=[(root,0)]
ans=[]
if(root is None):
return []
while(len(q)>0):
for i in range(len(q)):
node,level=q.pop()
minn=min(minn,level)
maxx=max(maxx,level)
if(level not in d):
d[level]=node.data
if(node.left is not None):
q.insert(0,(node.left,level-1))
if(node.right is not None):
q.insert(0,(node.right,level+1))
for i in range(minn,maxx+1):
ans.append(d[i])
return ans
Last updated