LeetCode刷题系列 -- 113. 路径总和 II

news2024/9/21 12:29:12

给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。

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

示例 1:

输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22

输出:[[5,4,11,2],[5,8,4,5]]

示例 2:

输入:root = [1,2,3], targetSum = 5

输出:[]

示例 3:

输入:root = [1,2], targetSum = 0

输出:[]

113. 路径总和 II - 力扣(Leetcode)

思路

这种路径题,常常使用回溯法。

java:

/**
 * 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 {
    
    List<List<Integer>> result = new ArrayList<>();

    public List<List<Integer>> pathSum(TreeNode root, int targetSum) {
        if(root == null) {
            return result;
        }
        tranverse(root, targetSum, new ArrayList<>());
        return result;
    }

    void tranverse(TreeNode root, int subSum, List<Integer> subList) {
        
        subList.add(root.val);
        if(root.left == null && root.right == null) {
            if(subSum - root.val == 0) {
                result.add(new ArrayList(subList));
            }
        }

        if(root.left != null) {
            tranverse(root.left, subSum - root.val, subList);
        }
        if(root.right != null) {
            tranverse(root.right, subSum - root.val, subList);
        }
        subList.remove(subList.size() - 1);

    }

}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java:函数与数组的相关代码题目

引言&#xff1a; 放松一段时间&#xff0c;今天又重新开始与大家来学习&#xff0c;假期正是我们反超别人的最佳时间&#xff0c;大家要抑制自己的情绪&#xff0c;低头学习。没有任何一种成功是短时间可以得到的&#xff0c;我们要做的就是&#xff0c;沉下心来&#xf…

偶数科技入选 IDC 中国分布式数据库报告,获 Innovator 殊荣

C Innovator 近日&#xff0c;全球知名咨询研究机构 IDC 发布了《中国分布式关系型数据库》研究报告&#xff0c;通过调研 CIO、IT 负责人、投资机构和众多厂商&#xff0c;评选出该领域综合表现突出的创新型厂商。偶数科技凭借其新一代云原生数据库 OushuDB 和实时湖仓一体创新…

rocketmq源码打包

背景&#xff1a;升级broker版本&#xff0c;并修改broker源代码步骤&#xff1a;1.下载源码&#xff0c;地址&#xff1a;https://rocketmq.apache.org/download/binary是编译好的可以直接使用&#xff0c;source是还没编译过的源代码&#xff0c;需要自行编译。因为我需要修改…

SpringMVC之Rest风格

目录 一&#xff1a;REST简介 二&#xff1a;RESTful入门案例 1.环境准备 三&#xff1a;思路分析 四&#xff1a;修改RESTful风格 五&#xff1a;RESTful快速开发 六&#xff1a;RESTful案例 1.需求分析 2. 环境准备 2 .后台接口开发 3.页面访问处理 步骤2:访问page…

java import javax.mail.*报错原因

今天在进行Javaweb项目开发导包时候出现问题。导入java import javax.mail.*进行报错在网上查询相关问题最后知道原因为&#xff1a;缺少收发邮件的jar包&#x1f4a1;解决办法是下载相关jar包下载地址http://www.oracle.com/technetwork/java/javamail/javamail145-1904579.ht…

DS18B20测量温度数码管显示

DS18B20温度传感器简介DS18B20是一种数字温度传感器。它输出的是数字信号&#xff0c;同时具有体积小&#xff0c;硬件资源耗费少&#xff0c;抗干扰能力强&#xff0c;精度高等特点。DS18B20温度传感器特点1、单线接口&#xff1a;DS18B20仅需一条线可实现与微处理器双向通信。…

【C++】从0到1入门C++编程学习笔记 - 提高编程篇:STL常用容器(stack容器)

文章目录一、stack 基本概念二、stack 常用接口一、stack 基本概念 概念&#xff1a;stack是一种先进后出(First In Last Out,FILO)的数据结构&#xff0c;它只有一个出口 栈中只有顶端的元素才可以被外界使用&#xff0c;因此栈不允许有遍历行为 栈中进入数据称为 — 入栈 p…

openMMLab 2

本文是openmmlab AI实战营的第二次课程的笔记&#xff0c;以下是我比较关注的部分。在图像分类任务上&#xff0c;视觉基础模型的发展&#xff0c;最新的是convNeXt。convNeXt : 返璞归真&#xff0c;将Swin Transformer 的模型元素迁移到卷积网络中&#xff0c;性能反超Transf…

设计模式-行为型模式(二)

目录 6.行为型模式 6.5 状态模式 6.5.1 概述 6.5.2 结构 6.5.3 案例实现 6.5.4 优缺点 6.5.5 使用场景 6.6 观察者模式 6.6.1 概述 6.6.2 结构 6.6.3 案例实现 6.6.4 优缺点 6.6.5 使用场景 6.6.6 JDK中提供的实现 6.7 中介者模式 6.7.1 概述 6.7.2 结构 6.7.…

物联网网关最常用的边缘计算优势在哪里

物联网是继计算机、互联网与移动通信网之后信息技术产业的第三次发展浪潮。通信技术能够使物联网将感知到的信息在不同的终端之间进行高效传输和交换&#xff0c;实现信息资源的互通和共享&#xff0c;是物联网各种应用功能的关键支撑。 物联网网关的通讯技术有很多&#xff0c…

COMSOL仿真教程—激光烧蚀

本例使用二维模型&#xff0c;将来自激光的入射热通量模拟为金属表面上空间分布的热源&#xff0c;从而得到金属的烧蚀过程和瞬态温度分布。仿真思路方案设计思路建模过程思路激光烧蚀.pdf建模说明新建在新建界面里点击模型向导。在选择物理场树中选择 传热>固体传热 以及 数…

unity 网络同步 预表现(预测同步)

基于守望先锋ECS网络同步&#xff1a; 程序丨暴雪Tim Ford&#xff1a;《守望先锋》架构设计与网络同步 本文主要聊聊预测同步 首先FPS这类游戏东西肯定不会让服务器过分相信客户端&#xff0c;因为总有混蛋开挂&#xff0c;作为一款即使对战游戏&#xff0c;高性能的网络表…

ICMP与DHCP(包含DHCP的全局配置模式与接口配置模式)

目录 ICMP DHCP DHCP服务器端部署 左边的全局配置模式 右边的接口配置模式 ICMP ICMP&#xff1a;互联网消息控制协议&#xff0c;用来在网络设备间传递各种差错和控制信息&#xff0c;对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。基于IP协议…

双线性插值法

文章目录前言一、双线性插值二、代码实现总结前言 在上一文《最近邻插值法》中我们讨论了最近邻&#xff0c;并且使用python实现&#xff0c;本章节中我们继续讨论图像缩放算法——双线性插值法&#xff0c;给难度升个级。 一、双线性插值 你在哪里见过下面这个图&#xff1f;回…

java基础—JDK基础面试题一

文章目录1.和equals区别是什么&#xff1f;2.Java中的 <<、>>、>>> 是什么3.if-else-if-else与switch的区别4.while和do-while的区别5.switch 是否能作用在 byte 上&#xff0c;是否能作用在 long 上&#xff0c;是否能作用在String上6.&和&&…

Mysql大数据表处理方案

场景&#xff1a; 当我们业务数据库表中的数据越来越多&#xff0c;如果你也和我遇到了以下类似场景&#xff0c;那让我们一起来解决这个问题 数据的插入,查询时长较长后续业务需求的扩展 在表中新增字段 影响较大表中的数据并不是所有的都为有效数据 需求只查询时间区间内的…

DynaSLAM-10 DynaSLAM中双目运行流程(Ⅳ):DynaSLAM的三大线程解析

目录 1.双目初始化部分 2.三种追踪模式 1.双目初始化部分 进入追踪线程首先判断双目追踪器状态mstate&#xff0c;在刚进入SLAM系统时&#xff0c; Tracking::Tracking函数默认将其设置为NO_IMAGES_YET&#xff0c;系统经过reset时也会将mstate设置为NO_IMAGES_YET......如果是…

【工业视觉-CCD相机和CMOS相机成像的本质区别】

工业视觉-CCD相机和CMOS相机成像的本质区别1.CCD的功耗高&#xff0c;CMOS的功耗低2.CCD速度较CMOS慢3.CCD的画质优于CMOS4.CCD的高感画质低于CMOS在学习工业视觉的起初&#xff0c;一般都是先去了解光源、镜头、相机等概念&#xff0c;在接触工业相机时看到两个概念&#xff0…

Java集合框架

Java集合框架 每博一文案 《杀死一只知更鸟》中有这样一段话&#xff1a;“你永远不可能真正地了解一个人&#xff0c;除非你穿上他的鞋子走来走去&#xff0c;站在他的角度思考问题。 可真当你走过他的路时&#xff0c;你连路过都觉得难过。” 世上没有真正的感同身受&#x…

数据结构 第六章 二叉树与树(树和森林)

1 双亲表示法(方便查找双亲) 使用层次遍历的方法将一个树中的所有结点存储到一维数组中 2 孩子表示法(方便查找孩子) 顺序链式存储结构&#xff1a; 1 使用数组来存储所有结点 2 为每一个结点来设置一个单链表 3 单链表链接的是其所有孩子结点的下标3 双亲孩子结合表示法 …