二叉树中是否存在节点和为指定值的路径
描述
给定一个二叉树和一个值sum,判断是否有从根节点到叶子节点的节点值之和等于sum 的路径
解题
二叉树
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
Solution
/**
* 寻找二叉树是否有等于指定值的路径(到叶子节点)
* 先序遍历
*/
public class Solution {
public boolean hashPathSum(TreeNode root,int sum){
return dfs(root,sum,0);
}
public boolean dfs(TreeNode root,int sum,int cnt){
if (root==null) return false;
cnt+=root.val;
if(root.left==null&&root.right==null&&cnt==sum) return true;
return dfs(root.left,sum,cnt)||dfs(root.right,sum,cnt);//或运算
}
}