Min Path Sum
// recursive is straight forward
public static int getMinPathSum(TreeNode root) {
if (root == null) return 0;
int left = getMinPathSum(root.left);
int right = getMinPathSum(root.right);
return root.val + Math.min(left, right);
}