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); } }