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
Given binary tree
{3,9,20,#,#,15,7}
, 3
/ \
9 20
/ \
15 7
return its bottom-up level order traversal as:
[
[15,7]
[9,20],
[3],
]
Solution:
# Definition for a binary tree node # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: # @param root, a tree node # @return a list of lists of integers def levelOrderBottom(self, root): solution = [] thisLevel = [] if root != None: thisLevel.append(root) while len(thisLevel)>0: levelNumbers = [] nextLevel = [] for node in thisLevel: levelNumbers.append(node.val) if node.left != None: nextLevel.append(node.left) if node.right != None: nextLevel.append(node.right) solution.insert(0,levelNumbers) thisLevel = nextLevel return solution
No comments :
Post a Comment