1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| class Solution { private static class TiltHolder { private int tilt; }
public int findTilt(TreeNode root) { TiltHolder tiltHolder = new TiltHolder(); nodeSum(root, tiltHolder); return tiltHolder.tilt; }
private int nodeSum(TreeNode node, TiltHolder tiltHolder) { if (node == null) { return 0; }
int leftSum = nodeSum(node.left, tiltHolder); int rightSum = nodeSum(node.right, tiltHolder);
tiltHolder.tilt += Math.abs(leftSum - rightSum);
return node.val + leftSum + rightSum; } }
|