【LeetCode】107. Binary Tree Level Order Traversal II 解题报告(Python)

    xiaoxiao2022-07-13  141

    题目分析:

    给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [3,9,20,null,null,15,7], 返回其自底向上的层次遍历为: [[15,7], [9,20],[3]]

    解题思路:

    这一题与【LeetCode】102. Binary Tree Level Order Traversal思路相同,就是递归中序遍历,并且记录层数就可以了,可以参考【LeetCode】102. Binary Tree Level Order Traversal。

    提交代码:(递归,Runtime: 36 ms, faster than 99.35% )

    class Solution: def levelOrderBottom(self, root: TreeNode) -> 'List[List[int]]': def preorder(root, level, res): if root: if len(res) <= level: res.insert(0, []) res[- ( level + 1 )].append(root.val) preorder(root.left, level + 1, res) preorder(root.right, level + 1, res) res = [] preorder(root, 0, res) return res
    最新回复(0)