1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| class Solution { private static class ResultHolder { private int moves; }
public int distributeCoins(TreeNode root) { ResultHolder resultHolder = new ResultHolder(); dfs(resultHolder, root); return resultHolder.moves; }
private int dfs(ResultHolder resultHolder, TreeNode root) { if (root == null) { return 0; }
int left = dfs(resultHolder, root.left); int right = dfs(resultHolder, root.right); resultHolder.moves += Math.abs(left) + Math.abs(right); return root.val - 1 + left + right; } }
|
References
979. Distribute Coins in Binary Tree