题目描述
给定一个二叉树和一个值\ sum sum,判断是否有从根节点到叶子节点的节点值之和等于\ sum sum的路径,
例如:
给出如下的二叉树,\ sum=22 sum=22,
返回true,因为存在一条路径 5\to 4\to 11\to 25→4→11→2的节点值之和为 22
解:
这道题主要考察二叉树的深度遍历,这道题要避免多余的查找,一旦找到符合的就直接返回结束递归。
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布尔型
*/
private int s=0;
public boolean find(TreeNode node,int sum){
s+=node.val;
if(node.left==null && node.right==null && s==sum){
return true;
}
if(node.right!=null &&