美文网首页
LeetCode-107-二叉树的层次遍历 II(python)

LeetCode-107-二叉树的层次遍历 II(python)

作者: JunfengsBlog | 来源:发表于2019-08-21 21:13 被阅读0次
    二叉树的层次遍历 II
    目前只要涉及到层次遍历的题,我基本都用的相同的代码模板就可以解决。
    这一题我用了python里面的双端队列:collections.deque(),可以在保存每一层非None节点的时候反向插入列表,就可以实现题目要求的自底向上的层次遍历
    心得:发现只要和层次遍历相关的代码都是在固定的代码模板里面修修改改就可以全部AC。一定是我太菜了才会套模板,还需要继续学习💪
    class Solution:
        def levelOrderBottom(self, root: TreeNode):
            outPutList = collections.deque()
            queue = [root]
            while queue:
                layer = list()
                layerWithoutNone = list()
                next_queue = list()
                for node in queue:
                    if not node:
                        layer.append(None)
                        continue
    
                    layer.append(node.val)
                    next_queue.append(node.left)
                    next_queue.append(node.right)
                    if node.val is not None:
                        layerWithoutNone.append(node.val)
    
                queue = next_queue
                outPutList.appendleft(layerWithoutNone)
            outPutList = list(outPutList)
            return outPutList[1:]
            
    

    相关文章

      网友评论

          本文标题:LeetCode-107-二叉树的层次遍历 II(python)

          本文链接:https://www.haomeiwen.com/subject/pykwsctx.html