2022-06-19
Description
Input: root = [5,2,-3]
Output: [2,-3,4]Input: root = [5,2,-5]
Output: [2]Solution
Approach #0
Last updated
Input: root = [5,2,-3]
Output: [2,-3,4]Input: root = [5,2,-5]
Output: [2]Last updated
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func findFrequentTreeSum(root *TreeNode) (ans []int) {
m := make(map[int]int)
var big int
var dfs func(*TreeNode) int
dfs = func(node *TreeNode) int {
if node == nil {
return 0
}
sum := node.Val + dfs(node.Left) + dfs(node.Right)
m[sum]++
if m[sum] > big {
big = m[sum]
}
return sum
}
dfs(root)
for k, v := range m {
if v == big {
ans = append(ans, k)
}
}
return
}