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

C语言 | Leetcode C语言题解之第437题路径总和III

题目:

题解:

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
//递归遍历树节点,判断是否为有效路径
int dfs(struct TreeNode * root, int targetSum,long sum)
{
    if(root == NULL)//叶子结点返回
    {
        return 0;
    }
    sum += (long)root->val;//统计节点值
    if(sum == targetSum)//是一个有效路径 +1
    {
        //再进行判断,以本节点还有没有有效路径
        return 1 + dfs(root->left, targetSum, sum) + dfs(root->right, targetSum, sum);
    }
    else//不是有效路径 +0
    {
        return dfs(root->left, targetSum, sum) + dfs(root->right, targetSum, sum);
    }
}
/*
*int pathSum(struct TreeNode* root, int targetSum)
int pathSum:寻找二叉树中路径个数
struct TreeNode* root:树节点
int targetSum:路径大小
返回值:二叉树的路径数
*/
int pathSum(struct TreeNode* root, int targetSum){
    if(root == NULL)
    {
        return 0;
    }
    //返回当前节点的路径数 + 左子树的路径数 + 右子树的路径数
    return dfs(root, targetSum, (long)0) + pathSum(root->left, targetSum) + pathSum(root->right, targetSum);
}

http://www.kler.cn/a/320182.html

相关文章:

  • JavaScript 高级—求数组的最大值与最小值
  • MySQL系列之数据授权(privilege)
  • python调用MySql保姆级教程(包会的)
  • 【计算机网络安全】湖北大学-mysql事务隔离性实验
  • 记录java Collections.sort踩的坑
  • STM32 创建一个工程文件(寄存器、标准库)
  • 深度学习:神经网络--手写数字识别
  • RocketMQ消息重试机制解析!
  • 优化java中 HashMap 的容量](capacity值)
  • pytest - 多线程提速
  • C# 串口通信的简单概述
  • Delphi 12.2 新出的 WebStencil 组件和 Quill 编辑器配合的问题
  • [uni-app]小兔鲜-02项目首页
  • spark,poi,jar包冲突(commons.io)
  • Mora:多智能体框架实现通用视频生成
  • K8s Fedora单机版
  • 人生苦短,我用Python✌
  • 创业者必备的7个AI工具
  • Vue 入门之 computed 计算属性
  • 进阶SpringBoot之 Dubbo 及 Zookeeper 安装
  • SPSS26统计分析笔记——5 卡法检验
  • 828华为云征文|华为云Flexus云服务器X实例——部署EduSoho网校系统、二次开发对接华为云视频点播实现CDN加速播放
  • 【机器学习】——线性回归(自我监督学习)
  • 关于ollama 在mac的部署问题
  • 在nuxt中集成mars3d
  • 极狐GitLab 17.4 重点功能解读【四】