美文网首页
二叉树--是否存在路径之和等于给定值

二叉树--是否存在路径之和等于给定值

作者: 今年花开正美 | 来源:发表于2020-06-08 23:27 被阅读0次

今天学习的算法是给定一课二叉树,判断是否存在一条路径其值之和等于给定的值。

题目介绍

从根节点到每一条叶子节点表示一条路径,只要有一条路径的值之和等于给定值就返回true,否则返回false。我们先看下题目给定的树吧:


实现思路

还是使用递归的思想来解题吧,先看下实现思路图:


二叉树-是否存在路径之和等于给定值-解题(优化).png

按之前说过的递归代码最重要的是两点: 1、找到递归公式 2、找到终止条件

从图中我们可以看出,我们使用的是前序遍历来实现的。先遍历中间节点,计算从根节点到当前中间节点的路径之和(上图中的SUM),然后分别递归遍历左子节点和右子节点。因此得出以下两点:

1、递归公式:F(node,sum,presum) = (sum==presum+node.val) || F(node.left,sum,presum) || F(node.right,sum,presum) 。

2、终止条件:node == null 或者 node为叶子节点且sum等于给定值。

实现代码

public class SolutionHasPathSum {

    public boolean hasPathSum(TreeNode root, int sum) {
        return hasPathSum(root, sum, 0);
    }

    private boolean hasPathSum(TreeNode node, int sum, int preSum) {

        if(node == null){
            return false;
        }

        preSum += node.val;
        if (null == node.left && null == node.right) {
            return sum == preSum;
        }

        return hasPathSum(node.left, sum, preSum) || hasPathSum(node.right, sum, preSum);
    }

}

算法相关实现源码地址:https://github.com/xiekq/rubs-algorithms

相关文章

  • 二叉树--是否存在路径之和等于给定值

    今天学习的算法是给定一课二叉树,判断是否存在一条路径其值之和等于给定的值。 题目介绍 从根节点到每一条叶子节点表示...

  • Leetcode 112 路径总和

    路径总和 题目 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于...

  • 112. 路径总和

    题目描述 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和...

  • 路径总和

    给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 说明:...

  • LeetCode 112. 路径总和

    题目 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 ...

  • 28路径总和

    给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明: ...

  • 【112】路径总和

    给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 使用递...

  • 【Leetcode】112—Path Sum

    一、题目描述 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目...

  • leetcode--112--路径总和

    题目:给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 ...

  • LeetCode二叉树专题 (9) 路径总和

    题目 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。 ...

网友评论

      本文标题:二叉树--是否存在路径之和等于给定值

      本文链接:https://www.haomeiwen.com/subject/phcjtktx.html