首页 > 其他分享 >代码随想录:路径总和

代码随想录:路径总和

时间:2025-01-12 20:45:37浏览次数:1  
标签:node right TreeNode int 路径 随想录 targetSum 总和 left

代码随想录:路径总和

思路很简单,但是一个传参很巧妙,每次递归减去当前节点的值,就只用一个传参

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left),
 * right(right) {}
 * };
 */
class Solution {
public:
    bool hasPathSum(TreeNode* root, int targetSum) {
        if (!root)
            return false;
        return tra(root, targetSum);
    }

    bool tra(TreeNode* node, int targetSum) {
        targetSum = targetSum - node->val;
        if (node->left == NULL && node->right == NULL) {
            if (targetSum == 0)
                return true;
            else
                return false;
        }
        bool l = false, r = false;
        if (node->left) {
            l = tra(node->left, targetSum);
        }
        if (node->right) {
            r = tra(node->right, targetSum);
        }
        return l || r;
    }
};

标签:node,right,TreeNode,int,路径,随想录,targetSum,总和,left
From: https://www.cnblogs.com/huigugu/p/18667254

相关文章

  • 代码随想录:找树左下角的值
    代码随想录:找树左下角的值层次遍历轻轻松松/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*TreeNode(intx):val(x......
  • 代码随想录:左叶子之和
    代码随想录:左叶子之和没啥意思,很铸币的判断方法/***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(nullptr),right(nullptr){}*TreeNode(intx):v......
  • Windows 安装软件常用更改路径
     环境变量:#标题键值 #javaJAVA_HOMEE:\Programs\Java\jdk-20 #javaPath %JAVA_HOME%\bin (AI认为只有一个JAVA版本时可以直接写 E:\Programs\Java\jdk-20\bin而不需创建JAVA_HOME环境变量,写JAVA_HOME只是为了方便开发时用命令行切换Java版本) #vs......
  • 探讨人工智能机器人学之路径规划与导航:A*算法、Dijkstra算法等路径规划方法
    引言在人工智能(AI)和机器人学中,路径规划与导航是一个至关重要的课题。机器人在复杂的环境中,必须能够根据环境信息和目标要求,自动计算一条从起始位置到目标位置的最优或可行的路径。路径规划不仅仅是关于如何找到目标位置,还涉及如何在多变、动态的环境中避免障碍、实现效率和安......
  • LeetCode:112.路径总和
    LeetCode:112.路径总和解题思路在深度优先遍历的过程中,记录当前路径的节点值的和。在叶子节点处,判断当前路径的节点值的和是否等于目标值。解题步骤深度优先遍历二叉树,在叶子节点处,判断当前路径的节点值的和是否等于目标值,是就返回true。遍历结束,如果没有匹配,就返回false。varh......
  • 代码随想录算法训练营第二天 | Leetcode 209、Leetcode 59、kama 44、kama 58
    Leetcode209#include"iostream"#include"vector"usingnamespacestd;intminSubArrayLen(inttarget,vector<int>&nums){intlen=INT32_MAX;intsum=0;for(intj=0,i=0;j<nums.size();j++){......
  • 为什么设置MSVC cl.exe到PATH路径,依然无法正常编译?为什么MSVC toolchain有多个cl.exe
    为什么设置MSVCcl.exe到PATH路径,依然无法正常编译?MSVC可以正常编译C/C++代码的前提,还包括INCLUDE/LIB路径等都正确配置,而这无法仅仅通过MSVCcl.exe的PATH路径来完成。VS提供了一个官方的配置MSVC环境的方式,可以通过开始菜单的"DeveloperCommandPromptforVS2019......
  • 计算机视觉实战项目(图像分类+目标检测+目标跟踪+姿态识别+车道线识别+车牌识别+无人
    往期热门项目回顾:链接失效时请主页搜索关键词!!!!文章目录**往期热门项目回顾:**车辆跟踪及测距yolov5deepsort行人/车辆(检测+计数+跟踪+测距+测速)目标跟踪车道线识别语义分割姿态识别图像分类交通标志识别表情识别、人脸识别疲劳检测车牌识别代码图像去雾去雨+......
  • 代码随想录训练营第四十五天| 115.不同的子序列 583. 两个字符串的删除操作 72. 编辑
    115.不同的子序列题目链接:115.不同的子序列-力扣(LeetCode)讲解链接:代码随想录 hard确实不好直接说出来粘一下思路:(引自代码随想录)确定dp数组(dptable)以及下标的含义dp[i][j]:以i-1为结尾的s子序列中出现以j-1为结尾的t的个数为dp[i][j]。为什么i-1,j-1这么定义卡哥......
  • FTP上传目录路径解析及HTTP错误404解决办法
    问题描述:用户尝试通过FTP上传文件到指定目录(如www),但在浏览器访问时遇到了HTTP404错误。用户想知道正确的上传路径以及如何解决此问题。解决方案:您好,针对您遇到的FTP上传目录路径及HTTP404错误的问题,以下是详细的解决方案:FTP上传路径说明:网页端访问FTP空间:您可以通过FTP......