22.二叉树的层次遍历II(简单)

    科技2025-07-29  43

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

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

    3 / \ 9 20 / \ 15 7

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

    [ [15,7], [9,20], [3] ] # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def levelOrderBottom(self, root: TreeNode) -> List[List[int]]: res = [] # 返回的结果列表 if not root: return res else: dque = collections.deque() # 创建一个双端队列 dque.append(root) while dque: # 当队列不空时,执行循环 temp = [] # 存储一层节点的值的临时列表 for i in range(len(dque)): # 访问一层 node = dque.popleft() # 出队列 temp.append(node.val) if node.left: dque.append(node.left) if node.right: dque.append(node.right) res.append(temp) return res[::-1] # res[::-1]表示翻转列表的值,[起始下标,终点下标,步长], # 步长为-1表示从后往前

    Processed: 0.034, SQL: 8