二叉树的层次遍历ii

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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容