当前位置: 首页 > news >正文

leetcode437.路径总和|||

对于根结点来说,可以选择当前结点为路径也可以不选择,但是一旦选择当前结点为路径那么后续都必须要选择结点作为路径,不然路径不连续是不合法的,所以这里分开出来两个方法进行递归

由于力扣最后一个用例解答错误,分析发现targetSum减法多次后可能越界之类的情况把参数类型改为了long

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public int pathSum(TreeNode root, long targetSum) {
        if (root == null) {
            return 0;
        } else {
            if (targetSum - root.val == 0) {
                return 1
                        + getSum(root.left, targetSum - root.val)
                        + getSum(root.right, targetSum - root.val)
                        + pathSum(root.left, targetSum)
                        + pathSum(root.right, targetSum);
            } else {
                return getSum(root.left, targetSum - root.val)
                        + getSum(root.right, targetSum - root.val)
                        + pathSum(root.left, targetSum)
                        + pathSum(root.right, targetSum);
            }
        }
    }

    private int getSum(TreeNode root, long targetSum) {
        if (root == null) {
            return 0;
        } else {
            targetSum-=root.val;
            if (targetSum == 0) {
                return 1 + getSum(root.left, targetSum) + getSum(root.right, targetSum);
            } else {
                return getSum(root.left, targetSum) + getSum(root.right, targetSum);
            }
        }
    }
}

 

相关文章:

  • C语言中的动态内存管理的学习
  • C++搜索
  • 【鸿蒙5.0】鸿蒙登录界面 web嵌入(隐私页面加载)
  • HTTP缓存
  • 【STL】deque(了解)
  • Linux | I.MX6ULL 终结者底板原理图讲解(4)
  • beikeshop多商户跨境电商独立站最新版v1.6.0版本源码
  • ACM模式常用方法总结(Java篇)
  • StarVector:开启多模态SVG生成的新纪元——开源AI模型的革新之作
  • 豪越科技消防一体化平台:打通消防管理“任督二脉”
  • 深度学习处理文本(2)
  • C语言快速入门-C语言基础知识
  • 2025年03月28日Github流行趋势
  • 10分钟看明白爆火的本地知识库! 掌握本地知识库基本概念与RAG的完整架构
  • 一文速通Python并行计算:04 Python多线程编程-多线程同步(下)—基于条件变量、事件和屏障
  • 【云原生】在Kubernetes上搭建Keycloak26.1.4
  • 【Rust基础】使用LanceDB构建高性能以图搜图服务
  • 代码随想录|回溯算法|09分割回文串
  • 排序--归并排序
  • Kubernetes service 基于工作原理的实验
  • 优质的网站建设推广/百度推广优化公司
  • 现在哪个招聘网站做的比较好/排名前十的大学
  • dz论坛怎么做视频网站/百度官方优化指南
  • 专门做服装批发的网站吗/百度最新版app下载安装
  • nba网站建设/天津seo管理平台
  • 网站建设的社会意义/福州seo公司