欢迎光临散文网 会员登陆 & 注册

LeetCode-112-路径总和

2021-11-07 23:31 作者:雄狮虎豹  | 我要投稿

路径总和

题目描述:给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。

叶子节点 是指没有子节点的节点。

示例说明请见LeetCode官网。

来源:力扣(LeetCode)   

链接:https://leetcode-cn.com/problems/path-sum/   

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解法一:递归

首先,如果root为null,直接返回false。

否则,调用递归方法hasPathSum(TreeNode root, int targetSum, int curSum),root为当前节点,targetSum为目标和,curSum当前路径上的累加和,递归过程如下:

  • 如果root为null,直接返回;

  • 否则,curSum累加当前节点的值;

  • 然后判断如果root的左子树或者右子树有一边为null,则调用递归方法,参数为不为null的子树和curSum,然后返回;

  • 如果root的左子树和右子树都不为null,则左右子树都要调用递归方法。

过程中当到达子节点时需要判断当前路径的和curSum和targetSum是否相等,如果相等,则将result更新为true,最后返回result。

说明:该题的解法过程和 LeetCode-111-二叉树的最小深度 完全一样。

【每日寄语】 收集每一个快乐的瞬间,用它来回击每一个糟糕的日子。



LeetCode-112-路径总和的评论 (共 条)

分享到微博请遵守国家法律