leetcode之Binary Tree Level Order Traversal II(107)

题目:

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

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

    3
   / \
  9  20
    /  \
   15   7

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

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

python代码:

class Solution:
    def preorder(self, root, level, res):
        if root:
            if len(res) < level+1: res.append([])
            res[level].append(root.val)
            self.preorder(root.left, level+1, res)
            self.preorder(root.right, level+1, res)
    def levelOrderBottom(self, root):
        res=[]
        self.preorder(root, 0, res)
        return res[::-1]
心得:和树相关的题总是用递归去解。

猜你喜欢

转载自blog.csdn.net/cuicheng01/article/details/80357115