Q:给定一个二叉树和一个值sum,判断二叉树中是否有从根节点到叶子节点的节点值之和等于sum的路径
A:递归
1. 如果当前节点为空 返回false
2. 递归调用传入当前节点的左子树和sum-当前节点值 以及 右子树和sum-当前节点值
3. 如果当前节点值等于sum 并且当前节点是子节点 则返回true
import java.util.*;
/*
* public class TreeNode {
* int val = 0;
* TreeNode left = null;
* TreeNode right = null;
* }
*/
public class Solution {
/**
*
* @param root TreeNode类
* @param sum int整型
* @return bool布尔型
*/
public boolean hasPathSum (TreeNode root, int sum) {
// write code here
if(root == null){
return false;
}
if(sum == root.val && root.left == null && root.right==null){
return true;
}
return hasPathSum(root.left,sum-root.val) || hasPathSum(root.right,sum-root.val);
}
}