题目链接: https://leetcode-cn.com/problems/binary-tree-level-order-traversal-ii/.
这道题与No.1302类似,都关注了树的层序遍历。
class Solution(object):
def levelOrderBottom(self, root):
"""
:type root: TreeNode
:rtype: List[List[int]]
"""
result_collection = []
if not root:
return result_collection
self.help(root, 0, result_collection)
return result_collection[::-1]
def help(self, node, tmp_depth, result_collection):
if not node:
return
if tmp_depth == len(result_collection):
result_collection.append([]) #新的一层
result_collection[tmp_depth].append(node.val)
self.help(node.left, tmp_depth + 1, result_collection)
self.help(node.right, tmp_depth + 1, result_collection)
看了评论区的大神,使用tmp_depth作为result的index,方法很巧妙。