• Python3解leetcode Average of Levels in Binary Tree


    问题描述:

    Given a non-empty binary tree, return the average value of the nodes on each level in the form of an array.

    Example 1:

    Input:
        3
       / 
      9  20
        /  
       15   7
    Output: [3, 14.5, 11]
    Explanation:
    The average value of nodes on level 0 is 3,  on level 1 is 14.5, and on level 2 is 11. Hence return [3, 14.5, 11].

    思路:

    考虑BFS算法,因为这是第一次碰到BFS算法,因而将该题记录

    代码:

     1 # Definition for a binary tree node.
     2 # class TreeNode:
     3 #     def __init__(self, x):
     4 #         self.val = x
     5 #         self.left = None
     6 #         self.right = None
     7 
     8 class Solution:
     9     def averageOfLevels(self, root: TreeNode) -> List[float]:
    10         result = []
    11         self.BFS(root,result)
    12         return result
    13         
    14         
    15     def BFS(self,root,result):
    16         if root == None: return
    17         queue = [root]
    18         while queue:#如果queue不为空
    19             val = [i.val for i in queue if i]
    20             if len(val):result.append(sum(val)/len(val))
    21             queue = [child for node in queue if node for child in (node.left,node.right)]
    22  

    BFS的基本思路是:将每一层的结点放置于一个list中,然后遍历List对每个结点进行相应操作,下一步更新该list,将该list放置更下一层的结点。该算法不用递归调用自身,相对而言理解比较容易

  • 相关阅读:
    iOS中的隐式动画
    CALayer 为什么选择 cg 开头 而 不选择 UI 开头
    webStorm中的混乱代码格式化
    html5中的常用的库
    地下城勇士外挂
    开发板的时间设置有效,但重启恢复
    8148
    监控行人检测 .
    Linux设备驱动程序学习之分配内存
    快熟傅里叶算法图之音频wav文件
  • 原文地址:https://www.cnblogs.com/xiaohua92/p/11540207.html
Copyright © 2020-2023  润新知