美文网首页
leetcode107.Binary Tree Level Or

leetcode107.Binary Tree Level Or

作者: 就是果味熊 | 来源:发表于2020-07-02 23:06 被阅读0次

    原题链接https://leetcode.com/problems/binary-tree-level-order-traversal-ii/

    Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).

    For example:
    Given binary tree [3,9,20,null,null,15,7],
    3
    /
    9 20
    /
    15 7
    return its bottom-up level order traversal as:
    [
    [15,7],
    [9,20],
    [3]
    ]

    基本与该题解题方法一样,都是层序遍历,只是本题从底层开始输出,本来准备从顶层输出到栈,然后出栈到list,所以用res_stack命名了。后来直接用list[::-1]求解了,也可以双端队列从左边加入队列。

    from collections import deque
    class Solution:
        def levelOrderBottom(self, root: TreeNode) -> List[List[int]]:
            if not root:
                return []
            
            deques = deque()
            res_stack = []
            # res_stack = deque()
            deques.append(root)
            count = 1
            while deques:
                res = []
                n = count
                count = 0
                i = 0
                while i < n:
                    item = deques.popleft()
                    res.append(item.val)
                    i += 1
                    if item.left:
                        count += 1
                        deques.append(item.left)
                    if item.right:
                        count += 1
                        deques.append(item.right)
                res_stack.append(res)
                # res_stack.appendleft(res)
            return res_stack[::-1]
            # return res_stack
    
    

    相关文章

      网友评论

          本文标题:leetcode107.Binary Tree Level Or

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