112. Path Sum(路径总和)

问题描述

给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。

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

问题分析

采用递归的写法,到达下一个后代的时候加上其值,返回到父代的时候减去其值,然后在到达根部的叶子结点的时候进行判断是否等于目标值,这样就能解决问题。
我才用的是使用目标值减去结点值,这样在到达叶子结点,如果路径之和为目标值,则目标值应该被减为了0.

代码

bool hasPathSum(struct TreeNode* root, int targetSum) {
    if(root==NULL){
        return false;
    }
    targetSum -= root->val;
    if(root->left==NULL&&root->right==NULL){
        if(targetSum)return false;
        return true;
    }
    if(root->left==NULL){
        return  hasPathSum(root->right, targetSum);
    }
    if(root->right==NULL){
        return hasPathSum(root->left, targetSum);
    }
    return hasPathSum(root->left, targetSum)||hasPathSum(root->right, targetSum);
}

提交结果截图

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/396726.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

记录使用kiwi进行单元测试文件左边不展示运行按钮的问题

进行单元测是的时候,遇到一下一个问题,就是测试文件左上方没有运行按钮,后来经过调试,发现有两个原因可以导致这个问题 1 创建spec文件的时候,没有在test 文件夹和target下 2 podfile 中 test的target中&#xff0c…

【PHP】web服务器支持PHP_环境配置

一、PHP运行目前为止主要有4方式 (1)以模块加载的方式运行,初学者可能不容易理解,其实就是将PHP集成到Apache服务器, 以同一个进程运行。 (2)以CGI的方式运行,CGI英文叫…

力扣算法Algorithm竞赛模板库(codeforces-go):含了算法竞赛中常用的数据结构和算法实现,助力开发者更高效地解决问题

1.算法Algorithm竞赛模板库(codeforces-go) 算法竞赛模板库,为算法竞赛爱好者提供了一系列精心设计的算法模板。这个库包含了算法竞赛中常用的数据结构和算法实现,助力开发者更高效地解决问题 一个算法模板应当涵盖以下几点&…

debug - 只要在内存中有显示相关的数据, 就会被CE找到

文章目录 debug - 只要在内存中有显示相关的实际数据, 就会被CE找到概述笔记demo实现demo运行效果用CE查找实际数据地址找到自己的调试点 - 方法1找到自己的调试点 - 方法2打补丁备注END debug - 只要在内存中有显示相关的实际数据, 就会被CE找到 概述 自己写了一个demo, 想验…

Spring之AOP源码解析(中)

前言 在上一篇文章中,我们讲解了Spring中那些注解可能会产生AOP动态代理,我们通过源码发现,完成AOP相关操作都和ProxyFactory这个类有密切关系,这一篇我们将围绕这个类继续解析 演示 作用 ProxyFactory采用策略模式生成动态代理对象,具体生成cglib动态代理还是jdk动态代理,…

JAVA高并发——Java虚拟机锁优化

文章目录 1、锁偏向2、轻量级锁3、自旋锁4、锁消除 作为一款共用平台,JDK本身也为并发程序的性能绞尽脑汁。在JDK内部也想尽一切办法提高并发时的系统吞吐量。这里将向大家简单介绍几种JDK内部的“锁”优化策略。 1、锁偏向 锁偏向是一种针对加锁操作的优化手段。它…

用python绘制黄金价格变化曲线

首先你得从mt4把数据导出为csv:mt4如何导出数据-CSDN博客 1、引入必要的库 import numpy as np import pandas as pd import matplotlib.pyplot as plt 2、然后通过pandas载入csv数据 raw pd.read_csv("XAUUSDm1.csv", headerNone, index_colNone, p…

IO(2)

1 >使用从文件中读和写入文件完成两个文件的拷贝 #include<myhead.h> int main(int argc, const char *argv[]) {if(argc!3){puts("input error");return -1;}FILE *fprNULL;if((fprfopen(argv[1],"rb"))NULL){perror("fopen error");…

数据分析 - 机器学习

1&#xff1a;线性回归 线性回归是一种统计技术用于对输出变量与一个或多个输入变量之间的关系进行建模 用外行人的话来说&#xff0c;将其视为通过某些数据点拟合一条线&#xff0c;如下所示 以便在未知数据上进行预测&#xff0c;假设变量之间存在线性关系 点和线之间存在微小…

力扣(LeetCode)数据结构练习题(2)

今天又写了两道关于链表的练习题&#xff0c;来给大家分享一下。巩固一下上一篇学到的链表知识&#xff0c;题目可以然我们更清楚的认识链表。 目录 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表 给你单链表的头结点 head &#xff0c;请…

【.NET Core】C#编程规范

【.NET Core】C#编程规范 文章目录 【.NET Core】C#编程规范一、概述1.1 结构清晰第一1.2 简洁之风1.3 代码风格保持一致性 二、命名约定三、类型参数命名指南3.1 请使用描述性名称命名泛型类型参数&#xff0c;除非单个字面名称完全具有自我说明性且描述性名称不会增加任何作用…

数据结构第3章 串

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 本篇笔记整理&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 0、思维导图1、基本概念1&#xff09;主…

C#,入门教程(05)——Visual Studio 2022源程序(源代码)自动排版的功能动画图示

上一篇&#xff1a; C#&#xff0c;入门教程(04)——Visual Studio 2022 数据编程实例&#xff1a;随机数与组合https://blog.csdn.net/beijinghorn/article/details/123533838 新来的徒弟们交上来的C#代码&#xff0c;可读性往往很差。 今天一问才知道&#xff0c;他们居然不…

备战蓝桥杯---动态规划(应用1)

话不多说&#xff0c;直接看题&#xff1a; 首先我们考虑暴力&#xff0c;用二维前缀和即可&#xff0c;复杂度为o(n^4). 其实&#xff0c;我们不妨枚举任意2行&#xff0c;枚举以这个为边界的最大矩阵。 我们把其中的每一列前缀和维护出来&#xff0c;相当于把一个矩阵压缩成…

[BUUCTF]-PWN:axb_2019_heap解析(格式化字符串漏洞,unlink,off by one)

查看保护 查看ida 大致就是alloc创建堆块&#xff0c;free释放堆块&#xff0c;以及fill填充堆块 解释get input函数&#xff1a; 这里解释一下get input函数 这个函数是人工编写的&#xff0c;其中*v410那里是把接受到的换行符变为\x00&#xff0c;并且结束输入。 v3那里&a…

中科大计网学习记录笔记(十三):UDP 套接字编程 | 传输层概述和传输层的服务

前言&#xff1a; 学习视频&#xff1a;中科大郑烇、杨坚全套《计算机网络&#xff08;自顶向下方法 第7版&#xff0c;James F.Kurose&#xff0c;Keith W.Ross&#xff09;》课程 该视频是B站非常著名的计网学习视频&#xff0c;但相信很多朋友和我一样在听完前面的部分发现信…

知识产权-

知识产权 《中华人民共和国著作权法》 《中华人民共和国著作权法》是为了保护文学、艺术和科学作品作者的著作权及与著作权有关的权益。《中华人民共和国著作权法》中涉及到的作品的概念是文学、艺术和自然科学、社会科学、工程技术等作品,具体来说,这些作品包括以下九类: …

不买服务器也可以将本地服务放到互联网(ngrok内网穿透)

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 不买服务器也可以将本地服务放到互联网 前言ngrok基础&#xff1a;穿越网络边界的魔法使用场景&#xff1a;突破网络限制的利器实战 前言 在网络的世界里&#xff0c;有时候你的服务像是困在一座数字…

前端工程化之:webpack4-1(babel的安装和使用)

一、安装 官网&#xff1a;https://babeljs.io/ 民间中文网&#xff1a;https://www.babeljs.cn/ 1.babel简介 babel一词来自于希伯来语&#xff0c;直译为巴别塔。 巴别塔象征的统一的国度、统一的语言 而今天的 JS 世界缺少一座巴别塔&#xff0c;不同版本的浏览器能识别…