二叉树的层次遍历ii

2019-12-25  本文已影响0人  而立之年的技术控

leetcode的层次遍历ii

WechatIMG27.jpeg
class Solution:
    def levelOrderBottom(self, root: TreeNode) -> List[List[int]]:
        if not root:
            return None
        stack1 = [root]
        stack2 = []
        ret = []
        
        while stack1 or stack2:
            if stack1:
                tmpList = []
                while stack1:
                    tmp = stack1[0]
                    tmpList.append(tmp.val)
                    if tmp.left:
                        stack2.append(tmp.left)
                    if tmp.right:
                        stack2.append(tmp.right)
                    del stack1[0]
                ret.insert(0, tmpList)
            
            if stack2:
                tmpList = []
                while stack2:
                    tmp = stack2[0]
                    tmpList.append(tmp.val)
                    if tmp.left:
                        stack1.append(tmp.left)
                    if tmp.right:
                        stack1.append(tmp.right)
                    del stack2[0]
                ret.insert(0, tmpList)
        
        return ret
上一篇 下一篇

猜你喜欢

热点阅读