【python-树的宽度遍历】二叉树的反向层次遍历

问题描述:

给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从右到左访问所有节点)。

例如:
给定二叉树: [3,9,20,null,null,15,7],

3
/ \
9 20
/ \
15 7
返回其层次遍历结果:

[
[3],
[20,9],
[7,15]
]

class TreeNode:
    def __init__(self,x,left=None,right=None):
        self.val=x
        self.left=left
        self.right=right
        
t5=TreeNode(7)
t4=TreeNode(15)
t3=TreeNode(20)
t2=TreeNode(9,t4,t5)
root=TreeNode(3,t2,t3)

def reversedlevelOrder(root):
    stack=[root]
    res=[]
    while stack:
        tmp=[]
        for i in range(len(stack)):
            t=stack.pop(0)
            tmp.append(t.val)
            if t.right:
                stack.append(t.right)
            if t.left:
                stack.append(t.left)
        res.append(tmp)
    return res
    
print(reversedlevelOrder(root))

猜你喜欢

转载自www.cnblogs.com/xiximayou/p/12385365.html