| 1234567891011121314151617181920212223242526272829303132333435 | var max int = 0/** * Definition for a binary tree node. * type TreeNode struct { *     Val int *     Left *TreeNode *     Right *TreeNode * } */func findFrequentTreeSum(root *TreeNode) (res []int) {	max = 0	freq := make(map[int]int)	postorder(root, &freq)	for k, v := range freq {		if v == max {			res = append(res, k)		}	}	return}func postorder(root *TreeNode, freq *map[int]int) int {	if root == nil {		return 0	}	l := postorder(root.Left, freq)	r := postorder(root.Right, freq)	sum := l + r + root.Val	(*freq)[sum]++	if max < (*freq)[sum] {		max = (*freq)[sum]	}	return sum}
 |