Leetcode Note: Go - Average of Levels in Binary Tree
Average of Levels in Binary Tree - LeetCode
https://leetcode.com/problems/average-of-levels-in-binary-tree/
- Go 言語で取り組んだメモ
所感
- binary tree を走査して Average を float64 配列で return する
回答
Average of Levels in Binary Tree - LeetCode
https://leetcode.com/problems/average-of-levels-in-binary-tree/solution/
My solution in Go with explanation - LeetCode Discuss
https://leetcode.com/problems/average-of-levels-in-binary-tree/discuss/1026005/My-solution-in-Go-with-explanation
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func averageOfLevels(root *TreeNode) []float64 {
levels := []float64{}
if root == nil {
return levels
}
levelNodes := []*TreeNode{root}
for len(levelNodes) != 0 {
sum := 0
count := 0
nextLevel := []*TreeNode{}
for _, node := range levelNodes {
sum += node.Val
count += 1
if node.Left != nil {
nextLevel = append(nextLevel, node.Left)
}
if node.Right != nil {
nextLevel = append(nextLevel, node.Right)
}
}
levelNodes = nextLevel
levels = append(levels, float64(sum)/float64(count))
}
return levels
}