代码随想录——路径总和(Leetcode112)需要回顾

题目链接
在这里插入图片描述

递归

递归函数什么时候需要返回值?

  • 如果需要搜索整棵二叉树且不需要处理递归返回值,递归函数不要返回值
  • 如果需要搜索整棵二叉树且需要处理递归返回值,递归函数需要返回值
  • 如果搜索其中一条条件的路径,递归一定需要返回值,遇到符合条件的路径需要及时返回
/**
 * 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 boolean traversal(TreeNode root, int count){
        // 叶子节点 + 计数为0,返回true
        if(root.left == null && root.right == null && count == 0){
            return true;
        }
        // 叶子节点,计数不为0,返回false
        if(root.left == null && root.right == null){
            return false;
        }
        if(root.left != null){
            // 递归,处理节点
            count -= root.left.val;
            if(traversal(root.left,count)){
                return true;
            }
            // 回溯,撤销处理结果
            count += root.left.val;
        }
        if(root.right != null){
            count -= root.right.val;
            if(traversal(root.right,count)){
                return true;
            }
            count += root.right.val;
        }
        return false;
    }

    public boolean hasPathSum(TreeNode root, int targetSum) {
        if(root == null){
            return false;
        }
        return traversal(root,targetSum - root.val);
    }
}

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

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

相关文章

iOS App上架全流程及审核避坑指南

App Store作为苹果官方的应用商店,审核严格周期长一直让用户头疼不已,很多app都“死”在了审核这一关,那我们就要放弃iOS用户了吗?当然不是!本期我们从iOS app上架流程开始梳理,详细了解下iOS app上架的那些…

升级版网创教程wordpress插件自动采集并发布

主要功能: wordpress 插件主题系列支持自动采集并发布。 主要采集: 福缘,中创,冒泡 自动采集各大项目网进行整合发布到自己个人网站 插件话更新,减少网络请求,提升稳定性 代码完美开源 傻瓜式操作,一…

计算机SCI期刊,中科院2区,收稿范围非常广泛!

一、期刊名称 Journal of Web Semantics 二、期刊简介概况 期刊类型:SCI 学科领域:计算机科学 影响因子:2.5 中科院分区:2区 出版方式:开放出版 版面费:$1600 三、期刊征稿范围 《网络语义学杂志》…

Redis实现热点数据排行榜或游戏积分排行榜

数据库中的某张表中存储着文章的浏览量,或者点赞数等,或者游戏积分等数据...... 这些数据的更新在redis中完成,并定时同步到mysql数据库中。 而如果要对这些数据进行排序的话: Redis中的Sorted Set(有序集合)非常适合用于实现排…

ZEDmini使用完全指南

ZEDmini使用 ZED stereolabs 开箱测评 使用说明 ubuntu18.04nvidiacuda10 ubuntu18.04ZED SDK安装和使用 Ubuntu16.04安装NVIDIA显卡驱动 查看显卡信息 redwallredwall-G3-3500:~/catkin_ws$ lspci | grep VGA 00:02.0 VGA compatible controller: Intel Corporation Device …

成功案例(IF=7.4)| 代谢组+16s联合分析助力房颤代谢重构的潜在机制研究

研究背景 心房颤动(AF)是临床上最常见的持续性心律失常,具有显著的发病率和死亡率。高龄是房颤发病率、患病率和进展最显著的危险因素。与年龄在50-59岁之间的参与者相比,80-89岁之间的参与者患房颤的风险增加了9.33倍。目前尚不…

IEEE Transactions on Neural Networks and Learning Systems神经网络和学习系统TNNLS论文投稿须知

一、TNNLS介绍 IEEE Transactions on Neural Networks and Learning Systems作为控制领域的TOP期刊,2024年5月影响因子为10.4,虽然有些下降,之前五年平均影响因子为11.2,但依然是该领域王牌期刊,接收关于神经网络和相…

【软考中级 软件设计师】计算机网络和安全

计算机网络和安全是软件设计师(软考中级)考试中的重要组成部分,它涵盖了网络基础、网络协议、网络架构、网络安全等多个方面。以下是一些核心概念和要点, 计算机网络基础 OSI七层模型:物理层、数据链路层、网络层、传…

《intel开发手册卷3》读书笔记2

IA-32架构的内存管理分为两个部分:分段和分页。分段提供了一种隔离每个进程 或者任务代码、数据和栈模块的机制,保证多个进程或者任务能够在同一个处理器上运 行而不会互相干扰。分页机制实现了传统请求调页的虚拟内存系统,在这种系统中, 程序…

由于删除、修改、重装QT库引起的软件问题@FreeBSD

由于由于删除、修改、重装QT库以及snappy库等,导致很多软件出现了异常,即无法启动,逐个解决问题。 qutebrowser浏览器 报错: qutebrowser报错 No backend library found qutebrowser needs QtWebKit or QtWebEngine, but neith…

自动化测试用例结构

标准的用例结构: 用力标题前提条件用例步骤预期结果实际结果 测试用例对比:

好的架构是进化来的,不是设计来的

很多年前,读了子柳老师的《淘宝技术这十年》。这本书成为了我的架构启蒙书,书中的一句话像种子一样深埋在我的脑海里:“好的架构是进化来的,不是设计来的”。 2015 年,我加入神州专车订单研发团队,亲历了专…

【安装配置】WSL虚拟机导出、导入镜像(涉及到docker无法在wsl下使用的问题)

背景 WSL(Windows Subsystem Linux),是微软提供的在Windows下便携地使用Linux系统的方式,它支持使用虚拟化技术(也就是要在bios和控制面板中开启虚拟化支持),完美支持Ubuntu和Windows文件系统之…

分布式文件系统minIo

分布式文件系统 什么是分布式文件系统 一个计算机无法存储海量的文件,通过网络将若干计算机组织起来共同去存储海量的文件,去接收海量用户的请求,这些组织起来的计算机通过网络进行通信,如下图: 好处: 1、…

vue3的api风格

Vue的组件有两种不同的风格:组合式API 和 选项式API 选项式api 选项式API,可以用包含多个选项的对象来描述组件的逻辑,如:data,methods,mounted等。 组合式api setup:是一个标识,告…

【线段图案】

描述 KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的线段图案。 输入描述: 多组输入,一个整数(1~100),表示线段长度,即“*”的数量。 输出描述…

python将程序运行结果存入txt文本

//其实就是运行下面代码,然后下面代码会通过subprocess再去运行script.py(我们的程序代码),然后把它写入oput.txt中。 import subprocess with open(oput.txt, w) as f:subprocess.run([python, script.py], stdoutf, stderrsu…

轻松驾驭文件重命名,一键批量导出位置与名称至表格,让文件管理更高效便捷!

无论是工作还是生活,我们都需要与各种各样的文件打交道。有时,为了快速查找或整理文件,我们可能需要记录它们的位置和名称。但面对海量的文件,手动记录不仅耗时耗力,还容易出错。那么,有没有一种方法能够轻…

react使用antd警告:Warning: findDOMNode is deprecated in StrictMode.

警告信息: Warning: findDOMNode is deprecated in StrictMode. findDOMNode was passed an instance of DOMWrap which is inside StrictMode. Instead, add a ref directly to the element you want to reference. Learn more about using refs safely here: htt…

垃圾溢满堆放识别检测

垃圾溢满堆放识别检测系统的核心技术是基于YOLO深度学习模型,垃圾溢满堆放识别检测系统能够在监控画面中快速识别出垃圾箱外部的垃圾堆放情况。系统经过大量的训练和优化,能够识别出各种垃圾的特征,并能够准确判断是否溢满堆放。垃圾溢满堆放…