112. 路径总和
package Tree;import java.util.HashMap;
import java.util.Map;class TreeNode {int val;TreeNode left;TreeNode right;public TreeNode(int val) {this.val = val;}
}/*** 求 树的路径和* <p>* 递归 递减* <p>* 询问是否存在从*当前节点 root 到叶子节点的路径,满足其路径和为 sum*。* <p>* 假定从根节点到当前节点的值之和为 val,我们可以将这个大问题转化为一个小问题:是**否存在从当前节点的子节点到叶子的路径,满足其路径和为 sum - val**。* <p>* 不难发现这满足递归的性质,若当前节点就是叶子节点,那么我们直接判断 sum 是否等于 val 即可*/
public class Letcode112 {public boolean hasPathSum(TreeNode root, int targetSum) {if (root == null) {return false;}if (root.left == null && root.right == null) {return root.val == targetSum;}return hasPathSum(root.left, targetSum - root.val) || hasPathSum(root.right, targetSum - root.val);}}