zoukankan      html  css  js  c++  java
  • LeetCode 107. 二叉树的层次遍历 II

    107. 二叉树的层次遍历 II

    Difficulty: 简单

    给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)

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

        3
       / 
      9  20
        /  
       15   7
    

    返回其自底向上的层次遍历为:

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

    Solution

    Language: 全部题目

    这是一道102. 二叉树的层序遍历的变种题目,如果之前做过这道题应该很简单,只需要注意把返回的结果也刚到一个队列里面,就能保证是从底部往上遍历的。

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    from collections import deque
    class Solution:
        def levelOrderBottom(self, root: TreeNode) -> List[List[int]]:
            if not root: return []
            
            queue, resQueue = deque([root]), deque()
            while queue:
                curLevel, size = [], len(queue)
                for i in range(size):
                    node = queue.popleft()
                    if node.left:
                        queue.append(node.left)
                    if node.right:
                        queue.append(node.right)
                    curLevel.append(node.val)
                resQueue.appendleft(curLevel)
            return list(resQueue)
    
  • 相关阅读:
    架构师技能图谱 V1.2
    CTO 技能图谱
    物联网的技术构架
    东进交换机
    Ipad2
    ipad2 恢复
    论文建议
    SQL归档
    SQL 会议消费记录统计
    javascript中的方法:类方法(静态方法)对象方法 原型方法
  • 原文地址:https://www.cnblogs.com/swordspoet/p/14041708.html
Copyright © 2011-2022 走看看