[LeetCode]题解(python):102- Binary Tree Level Order Traversal

Posted Ry_Chen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LeetCode]题解(python):102- Binary Tree Level Order Traversal相关的知识,希望对你有一定的参考价值。

题目来源:

  https://leetcode.com/problems/binary-tree-level-order-traversal/


 

题意分析:

  宽度优先搜索一颗二叉树,其中同一层的放到同一个list里面。比如:

  3
   /   9  20
    /     15   7
返回
[
  [3],
  [9,20],
  [15,7]
]

 

题目思路:

  新定义一个函数,加多一个层数参数,如果目前答案的列表答案个数等于层数,那么当前层数的列表append新元素,否者加新的层数。


 

代码(python):

  

技术分享
# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution(object):
    def levelOrder(self, root):
        """
        :type root: TreeNode
        :rtype: List[List[int]]
        """
        ans = []
        def bfs(root,level):
            if root != None:
                if len(ans) < level + 1:
                    ans.append([])
                ans[level].append(root.val)
                bfs(root.left,level+1)
                bfs(root.right,level+1)
        bfs(root,0)
        return ans
        
View Code

 

以上是关于[LeetCode]题解(python):102- Binary Tree Level Order Traversal的主要内容,如果未能解决你的问题,请参考以下文章

精选力扣500题 第13题 LeetCode 102. 二叉树的层序遍历c++详细题解

Leetcode 102. 二叉树的层次遍历

leetcode-102-二叉树的层次遍历

LeetCode 102 二叉树的层序遍历

LeetCode第102题—二叉树的层序遍历—Python实现

《LeetCode之每日一题》:102.最后一个单词的长度