* @desc 二叉树中和为某一值的路径
* <p>
* 给定一个二叉树root和一个值 sum ,判断是否有从根节点到叶子节点的节点值之和等于 sum 的路径。
* 1.该题路径定义为从树的根结点开始往下一直到叶子结点所经过的结点
* 2.叶子节点是指没有子节点的节点
* 3.路径只能从父节点到子节点,不能从子节点到父节点
* 4.总节点数目为n
*/
public class A72_TreeHasSumPath {
public boolean hasPathSum(TreeNode root, int sum) {
if (root == null) {
return false;
}
//深度优先遍历
return dfs(root, sum);
}
private boolean dfs(TreeNode treeNode, int target) {
if (treeNode == null) {
return false;
}
//递归递减当前节点的值
target = target - treeNode.val;
//直到叶子节点
if (treeNode.left == null && treeNode.right == null && target == 0) {
return true;
}
//最后进行左右节点递归
return dfs(treeNode.left, target) || dfs(treeNode.right, target);
}
}
二叉树中和为某一值的路径
最新推荐文章于 2025-11-24 14:46:26 发布
329

被折叠的 条评论
为什么被折叠?



