import java.util.*;
public class Solution {
// 二叉树中和为某一值的路径
// dfs 遍历树的路径,如果没有就回溯
// 题中路径定义为从树的根节点一直到叶子结点所经过的结点
public boolean hasPathSum (TreeNode root, int sum) {
// write code here
if(root == null) return false;
// 判断是否为叶子结点,同时判断当到达叶子结点时,整个路径上的结点和是否等于sum
if(root.left == null && root.right == null && sum - root.val == 0){
return true;
}
// 分别遍历左右子树,注意每次进入下一层结点都要减去当前节点的值
return hasPathSum(root.left,sum - root.val) || hasPathSum(root.right, sum - root.val);
}
}



京公网安备 11010502036488号