leetcode-637. 二叉树的层平均值
层次遍历+求平均值,Go中的切片也可以模拟queue的功能
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func averageOfLevels(root *TreeNode) []float64 {
queue := []*TreeNode{root}
avgList := []float64{}
for len(queue) > 0 {
sum := 0
lenQ := len(queue)
for i := 0; i < lenQ; i++ {
sum += queue[i].Val
if queue[i].Left != nil {
queue = append(queue, queue[i].Left)
}
if queue[i].Right != nil {
queue = append(queue, queue[i].Right)
}
}
// fmt.Println(sum, lenQ)
avgList = append(avgList, float64(sum)/float64(lenQ))
queue = queue[lenQ:]
}
return avgList
}
本文来自博客园,作者:吴丹阳-V,转载请注明原文链接:https://www.cnblogs.com/wudanyang/p/17021850.html

浙公网安备 33010602011771号