题目
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]
]
解题思路
这道题跟LeetCode: 102. Binary Tree Level Order Traversal一样的题意,只是把res反转输出就可以了。反转有两种写法。
# 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 root is None:
return res
level = [root]
while level:
res.append([node.val for node in level])
internode = []
for node in level:
# internode.extend([node.left, node.right])
internode.append(node.left)
internode.append(node.right)
level = [node for node in internode if node]
# return list(reversed(res))
return res[::-1]