天天看點

利用python 完成leetcode107 二叉樹的層次周遊 II

給定一個二叉樹,傳回其節點值自底向上的層次周遊。 (即按從葉子節點所在層到根節點所在的層,逐層從左向右周遊)

例如:

給定二叉樹 [3,9,20,null,null,15,7],

3

/ \

9 20

/ \

15 7

傳回其自底向上的層次周遊為:

[

[15,7],

[9,20],

[3]

]

思路

102題結果倒過來即可

代碼

def levelOrderBottom(self, root):
        if root==None:return  []
        q={}
        n=self.help(root,0,q)
        l=[]
        for i in range(n+1):
            l.append(q[i])
        return l[::-1]
        
    def help(self,root,level,q):
        if root==None:return 0
        if level in  q:q[level].append(root.val)
        else:q[level]=[root.val]
        a=self.help(root.left,level+1,q)
        b=self.help(root.right,level+1,q)
        return max(a,b,level)