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]
]
# 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):
"""
:type root: TreeNode
:rtype: List[List[int]]
"""
list = []
result = []
if not root:
return result
list.append(root)
while len(list):
temp = []
for i in range(len(list)):
current = list.pop(0)
temp.append(current.val)
if current.left:
list.append(current.left)
if current.right:
list.append(current.right)
result.append(temp)
return result[::-1]
不要忘记判断左右节点是否为空