[勇者闯LeetCode] 107. Binary Tree Level Order Traversal II

来源:互联网 发布:苹果 mac 最新系统 编辑:程序博客网 时间:2024/06/06 01:07

[勇者闯LeetCode] 107. Binary Tree Level Order Traversal II

Description

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]]

Information

  • Tags: Tree | Breadth-first Search
  • Difficulty: Easy

Solution

使用广度优先搜索来收集每一层的元素,最后按层数反向输出。

# Definition for a binary tree node.# class TreeNode(object):#     def __init__(self, x):#         self.val = x#         self.left = None#         self.right = Noneclass Solution(object):    def levelOrderBottom(self, root):        """        :type root: TreeNode        :rtype: List[List[int]]        """        if root is None:            return []        ans, current = [], [root]        while current:            next_level, vals = [], []            for node in current:                vals.append(node.val)                if node.left:                    next_level.append(node.left)                if node.right:                    next_level.append(node.right)            current = next_level            ans.append(vals)        return ans[::-1]
0 0
原创粉丝点击