题目分析:
 
给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [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