题目描述:
给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。
输入:
5
/
4 8
/ /
11 13 4
/ \
7 2 1
sum = 22
输出:
true
题意:
题目描述
题解:
简单dfs,一步步搜
代码:
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public boolean hasPathSum(TreeNode root, int sum) {
if (root == null)
return false;
sum -= root.val;
if ((root.left == null) && (root.right == null))
return (sum == 0);
return hasPathSum(root.left, sum) || hasPathSum(root.right, sum);
}
}

本文探讨了如何通过深度优先搜索(DFS)算法,解决给定二叉树中是否存在从根节点到叶子节点的路径,使得路径上的节点值之和等于特定目标值的问题。文章提供了一段简洁的Java代码实现,展示了如何递归地检查二叉树的每个分支,以确定是否存在满足条件的路径。

730

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



