Bottom View of Binary Tree

Problem Link: https://practice.geeksforgeeks.org/problems/bottom-view-of-binary-tree/1

class Solution:
    def bottomView(self, root):
        # code here
        d={}
        q=[(root,0)]
        ans=[]
        if(root is None):
            return []
        minn=float('inf')
        maxx=float('-inf')
        while(len(q)>0):
            
            for i in range(len(q)):
                
                node,level=q.pop()
                
                minn=min(minn,level)
                maxx=max(maxx,level)
                
                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