• 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)
    
  • 相关阅读:
    多任务拷贝小案例
    进程池
    进程间的通信
    互斥锁
    创建函数/类的线程
    udp/tcp流程
    发布模块
    私有属性/方法的访问
    深入了解jQuery之整体架构
    (转)前端面试题
  • 原文地址:https://www.cnblogs.com/swordspoet/p/14041708.html
Copyright © 2020-2023  润新知