您的位置:首页 > 其它

112.[Leetcode]Path Sum

2016-05-18 16:28 246 查看

题意:

求给定一个树,是否存在一个路径可以产生一个给定的值

递归:

public class Solution {
public boolean hasPathSum(TreeNode root, int sum) {
if (root == null) return false; // 边际条件
else {
// 一个节点是叶子节点的充分条件是 自己不为NULL,且两个子节点为NULL、
if(root.left == null && root.right == null) return sum == root.val;
// 如果两个子节点都不为空,那么就返回两个的或,即是其中有一个是真则为真
else if(root.left != null && root.right != null)
return hasPathSum(root.left,sum-root.val) || hasPathSum(root.right,sum-root.val);
//如果只有一个方向不为null,那么久返回这个方向
else if(root.left != null && root.right == null) return hasPathSum(root.left,sum-root.val);
else return hasPathSum(root.right,sum-root.val);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: