leetcode 107. Binary Tree Level Order Traversal II

Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left to right, level by level from leaf to root).

For example:
Given binary tree [3,9,20,null,null,15,7],

   3
   / \
  9  20
    /  \
   15   7

return its bottom-up level order traversal as:

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

这个题的解法和leetcode102类似

在这题中基本是在leetcode102的基础上,添加python上的reverse()就行。

python代码:

# 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]]:
        a = []
        nums = []
        a.append(root)
        if not root:
            return []
        while len(a):
            num = []
            length = len(a)
            for i in range(length):
                T = a[0]
                a.pop(0)
                num.append(T.val)
                if T.left:
                    a.append(T.left)
                if T.right:
                    a.append(T.right)
            nums.append(num)
        nums.reverse()
        return nums

你可能感兴趣的:(leetcode 107. Binary Tree Level Order Traversal II)