/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
import "math"
func findTilt(root *TreeNode) int {
sum := 0;
dfs(root, &sum)
return sum
}
func dfs(node *TreeNode, sump *int) int {
if node == nil {
return 0
}
left := dfs(node.Left, sump)
right := dfs(node.Right, sump)
*sump += int(math.Abs(float64(left - right)))
return left + right + node.Val;
}