LeetCode_二叉树_中等_113.路径总和 II

news2024/10/7 6:42:29

目录

  • 1.题目
  • 2.思路
  • 3.代码实现(Java)

1.题目

给你二叉树的根节点 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
输出:[]

提示:
树中节点总数在范围 [0, 5000] 内
-1000 <= Node.val <= 1000
-1000 <= targetSum <= 1000

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/path-sum-ii

2.思路

(1)DFS

相关题目:
LeetCode_二叉树_简单_112.路径总和
LeetCode_二叉树_前缀和_中等_437.路径总和 III

3.代码实现(Java)

//思路1————DFS
/**
 * 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>> res = new ArrayList<>();
    Deque<Integer> path = new LinkedList<>();

    public List<List<Integer>> pathSum(TreeNode root, int targetSum) {
        dfs(root, targetSum);
        return res;
    }

    public void dfs(TreeNode root, int targetSum) {
        if (root == null) {
            return;
        }
        path.offerLast(root.val);
        targetSum -= root.val;
        if (root.left == null && root.right == null && targetSum == 0) {
            //到达叶子节点,并且路径总和等于 targetSum
            res.add(new ArrayList<>(path));
        }
        dfs(root.left, targetSum);
        dfs(root.right, targetSum);
        path.pollLast();
    }
}

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

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

相关文章

网络基础知识(1)——从OSI七层模型和TCP/IP说起

网络通信概述 网络通信本质上是一种进程间通信&#xff0c;是位于网络中不同主机上的进程之间的通信&#xff0c;属于 IPC 的一种&#xff0c; 通常称为 socket IPC&#xff0c;如图中所示。所以网络通信是为了解决在网络环境中&#xff0c;不同主机上的应用程序之间的通信问题…

U盘上的文件删除了可以恢复吗 U盘上的文件怎么在电脑上恢复

随着数据时代的到来&#xff0c;人们使用U盘来存储和传输文件已经成为一种普遍的方式。然而&#xff0c;有时候人们会不小心将重要的文件从U盘上删除&#xff0c;或者由于其他原因导致文件丢失&#xff0c;这会给人们带来很多麻烦和不必要的损失。因此&#xff0c;在这篇文章中…

华为OD机试(1-20)老题库解析Java源码系列连载ing

华为OD机试算法题新老题库练习及源码 老题库1.敏感字段加密2.IPv4地址转换成整数3.VLAN资源池4. 求字符串中所有整数的最小和5.求满足条件的最长子串的长度6.字符串分割7.一种字符串压缩表示的解压8.矩阵最大值9.单词接龙10.找出符合要求的字符串子串11.字符串加密12.英文输入法…

指定目标对角线创建值全是1的下三角矩阵numpy.diagflat()方法

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 指定目标对角线 偏离主对角线的距离k 创建值全是1的下三角矩阵 numpy.tri() 选择题 关于以下代码说法错误的一项是? import numpy as np print("【执行】a np.tri(3, 3, 0, dtypeint)…

三十二、VPN技术概述——GRE、IPSec、MPLS vpn

文章目录 vpn 简介用途优缺 一、GRE-VPN1、基础配置步骤&#xff1a;2、可选配置 二、IPSEC-VPN 概述1、IPSes 特性2、IPSec 架构3、IPSec 数据封装 三、GRE OVER IPSEC VPN 配置1、配置2、注意 vpn 简介 vpn&#xff1a;virtual private network&#xff08;虚拟专用网络&…

Prompt都不需要了,动动手就能玩多模态对话系统,iChat来啦!

作者 | 智商掉了一地 近日有很多团队基于用户友好的 ChatGPT 进行再创作&#xff0c;其中不乏有比较亮眼的成果。InternChat工作强调了用户友好性&#xff0c;这是通过超越语言的方式&#xff08;光标与手势&#xff09;与聊天机器人交互来进行多模态任务的。InternChat 的命名…

MATLAB基础入门:语法、数据类型和常用函数

MATLAB是一种非常强大的数学计算软件&#xff0c;广泛应用于工程、科学、金融和其他领域的计算分析中。如果您刚开始学习MATLAB&#xff0c;那么这篇文章就是为您准备的。在这篇文章中&#xff0c;我们将介绍MATLAB的基础语法、数据类型和常用函数&#xff0c;以帮助您快速入门…

容器技术Docker

什么是容器 Linux容器是与系统其他部分隔离开的一系列进程&#xff0c;从另一个系统镜像运行&#xff0c;并由该镜像提供支持进程所需的全部文件。 容器镜像包含了应用的所有依赖项&#xff0c;因而在从开发到测试再到生产的整个过程中&#xff0c;它都具有可移植性和一致性。…

C++ | std::bind

C | std::bind 文章目录 C | std::bindstd::bind函数原型bind函数参数返回对象的类型&#xff1a; 实战1.普通函数/类成员函数/类成员变量2.模板函数3.lambda表达式 Reference std::bind函数原型 // 无返回值&#xff08;1&#xff09; template <class Fn, class... Args&…

OpenHarmony下如何打印C/C++调用堆栈

普法OpenHarmony下如何打印C/C调用堆栈 引言 各位大姐&#xff0c;老妹&#xff0c;兄弟是否在OpenHarmony开发移植过程中有过如下烦恼呢&#xff1f;想跟踪源码探寻相关代码逻辑的时候&#xff0c;当面对代码分支逻辑太多&#xff0c;太复杂&#xff0c;打调试信息进行追踪已经…

Mach-O

看看逆向过程中&#xff0c;经常遇见的Mach-O文件类型&#xff1a; MH_OBJECT&#xff0c;这种类型的文件有目标文件(.o)、静态库文件(.a) &#xff08;静态库文件就是N个.o文件合并在一起的&#xff09; MH_EXECUTE&#xff0c;可执行文件&#xff0c;例如上面说的Super文件 …

如何选择一款好的护眼台灯给孩子用?儿童护眼台灯推荐

所以也想要分享给大家&#xff0c;那么热爱看书的你&#xff0c;是否有时候会因为光源的问题而烦恼呢&#xff1f;房间所用的大灯虽然亮度足够&#xff0c;但太过于分散的光&#xff0c;让眼睛在长期聚精会神后&#xff0c;有了红肿干涩&#xff0c;酸痛模糊的感觉。而专用的台…

界面控件DevExpress Blazor UI v22.2 - 折叠组件、数据编辑器升级增强

DevExpress拥有.NET开发需要的所有平台控件&#xff0c;包含600多个UI控件、报表平台、DevExpress Dashboard eXpressApp 框架、适用于 Visual Studio的CodeRush等一系列辅助工具&#xff0c;该组件拥有众多新产品和数十个具有高影响力的功能&#xff0c;可为桌面、Web和移动应…

远程桌面基本原理

远程桌面基本原理 远程桌面是一种技术&#xff0c;它允许用户通过互联网或局域网远程访问另一台计算机的桌面。这种技术可以让用户在不同的地方使用同一台计算机&#xff0c;或者在同一地方使用不同的计算机。远程桌面技术在现代计算机应用中发挥着重要的作用&#xff0c;本文将…

达索的CAD绘图软件DraftSight 2023版本下载与安装配置教程

目录 前言一、​安装前准备二、DraftSight安装三、使用配置总结 前言 Dassault Systemes公司的DraftSight软件是一款功能强大的2D CAD绘图软件&#xff0c;可以帮助用户快速、准确地创建和编辑各种类型的图形。它的用户界面简单易用&#xff0c;支持多种文件格式&#xff0c;包…

C++ | function

C | function 文章目录 C | function引言实战1. 模板类声明2.普通函数/Lambda表达式/仿函数/类成员函数3.函数指针/模板函数/模板函数对象4.静态函数/类模板静态函数/模板类成员函数/类成员函数5. copy/move Reference 引言 程序设计时&#xff0c;经常需要使用回调函数&#…

多语言支持-唯一客服系统文档中心

客服系统支持多语种展示&#xff0c;比如&#xff1a;中文&#xff0c;英文&#xff0c;繁体&#xff0c;日语&#xff0c;韩语&#xff0c;俄语等&#xff0c;并且可以扩展各种小语种 语种展示的优先级 首先&#xff0c;按照url参数中指定的lang参数 其次&#xff0c;查询loca…

Open5gs学习笔记

目录 1.用户面和控制面分离 最近想在liunx模拟机上运行Open5GSUERANSIM来学习5G信令流程。 1.用户面和控制面分离 open5GS的quickstart提及By having the control and user planes physically separated like this, it means you can deploy multiple user plane servers in …

灾难恢复:支持业务连续性的策略——保证员工和客户始终可以访问关键数据和应用程序

灾难恢复&#xff1a;支持业务连续性的策略 保证员工和客户始终可以访问关键数据和应用程序。 为什么选择 NetApp 的业务连续性和灾难恢复解决方案&#xff1f; 保持弹性&#xff0c;自如操作 NetApp 就在您身边&#xff0c;在这样一个跌宕起伏的时期竭诚帮助您实现业务连续性…