深度优先搜索和递归遍历
1.先声明一个接收节点的和值的变量,在定义一个dfs的函数在这之中要判断是否空节点和更新节点的和值,终止条件,递归遍历整个树来进行和值的路径总和。
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
public boolean hasPathSum(TreeNode root, int targetSum) {
//接收节点的和值
int sum=0;
//调用函数
return DFS(root,targetSum,sum);
}
//定义的dfs函数
public boolean DFS(TreeNode Node, int targetSum,int sum) {
//判断是否空节点
if(Node==null){
return false;
}
//更新节点的和值
sum+=Node.val;
//终止条件
if(Node.right==null&&Node.left==null&&sum==targetSum){
return true;
}
//递归遍历
return DFS(Node.left,targetSum,sum)||DFS(Node.right,targetSum,sum);
}
}
本文介绍了如何使用深度优先搜索(DFS)算法解决二叉树中是否存在路径和等于给定目标和的问题,通过递归遍历节点并计算路径和来判断条件。
290

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



