Think about a recursive function. Beside the tilt of subtrees, we also need to get the sum of subtrees.

So I came up with the idea of sub function `tilt(root)`

, which returns the tuple `(sum, tilt)`

of tree

```
def findTilt(self, root):
def tilt(root):
# return (sum, tilt) of tree
if not root: return (0, 0)
left = tilt(root.left)
right = tilt(root.right)
return (left[0] + right[0] + root.val, abs(left[0] - right[0]) + left[1] + right[1])
return tilt(root)[1]
```