剑指offer34.二叉树中和为某一值的路径

news2024/11/17 7:37:57

 

 用深度遍历的方法找出每一条路径,看看和是否是目标值。

class Solution {

    Deque<Integer> queue = new LinkedList<Integer>();
    List<List<Integer>> res = new LinkedList<List<Integer>>();

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

    public void dfs(TreeNode root, int target){
    if(root == null){
        return;
    }
    queue.offerLast(root.val);
    target = target - root.val;
    
    if(root.left == null && root.right == null && target == 0){
     res.add(new LinkedList<>(queue));
    }
    dfs(root.left, target);
    dfs(root.right, target);
    queue.pollLast();
}
}

采用递归的方法深度遍历,创建一个返回值类型List<List<Integer>>() res,再创建一个双端队列来记录路径,添加节点和删除节点都在双端队列的末尾进行,如果路径是对的,把这个双端队列添加到res里面。当把一个节点的下面所有路径都走完了,把这个节点移出对列,最后返回res。

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

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

相关文章

Component name ‘Channel‘ should always be multi-word

新建vue文件后&#xff0c;会出现第一行代码爆红现象 报错原因: 在组件命名的时候未按照 ESLint 的官方代码规范进行命名&#xff0c;根据 ESLint 官方代码风格指南&#xff0c;除了根组件&#xff08;App.vue&#xff09;以外&#xff0c;其他自定义组件命名要使用大驼峰命名方…

IO流总结:

常用方法&#xff1a; 输入&#xff1a; new bufferedreader(new FileReader(“a.txt”))

Hadoop知识点

1.HDFS写数据流程 客户端通过Distributed FileSystem模块向NameNode请求上传文件&#xff0c;NameNode检查目标文件是否已存在&#xff0c;父目录是否存在。NameNode返回是否可以上传。客户端请求第一个 Block上传到哪几个DataNode服务器上。NameNode返回3个DataNode节点&#…

进程池线程池实现TCP高性能并发通信

进程池线程池实现TCP高性能并发通信 使用进程池与线程池实现并发服务&#xff0c;为多个客户进行接收和发送消息的服务 代码实现 # 导入进程池 from multiprocessing import Pool, cpu_count # 导入线程池 from multiprocessing.pool import ThreadPool from socket import …

动态规划P1

动态规划P1 1.数字三角形模型 1.1只取一条最大路或最小路 1015. 摘花生 只能向下或向右走&#xff0c;求最大能取多少花生 记录每个点最大能取到多少花生&#xff0c;从左上一直推到右下角 d p [ i ] [ j ] m a x ( d p [ i − 1 ] [ j ] , d p [ i ] [ j − 1 ] ) a [ …

mybatis-plus记录

1. 导入依赖 注意&#xff1a;springboot和mybatisplus的版本必须一致 导入build工具 <build><plugins><!-- 具体插件&#xff0c;逆向工程的操作是以构建过程中插件形式出现的 --><plugin><groupId>org.mybatis.generator</groupId>&l…

微信视频号配合OBS拉流推流开直播

背景 公司有要求&#xff0c;要实现外部视频流的同步直播&#xff0c;所以特意研究了一下OBS软件结合微信视频号直播的操作步骤。 一、OBS软件配置 &#xff08;一&#xff09;配置拉流 启动OBS软件-点击“”-选择增加“媒体源” 创建源名称 取消本地文件-填写拉流地址-…

MFC List Control控件添加单元格编辑和单元格下拉列表

文章目录 初始化编译栏的创建与销毁下拉列表的创建与销毁自定义编译栏与下拉框的焦点问题点击CListCtrl 事件处理程序双击添加全部代码 ui 设置 初始化 #define IDC_EDIT_CREATEID 3000 #define IDC_COMBOX_CREATEID 3001int e_Item0; //刚编辑的行 int e_SubItem2; //刚…

导入数据解析

Before未定义异常情况 继承 AnalysisEventListener 重写 onException Overridepublic void onException(Exception exception, AnalysisContext context) throws Exception {if (exception instanceof ExcelDataConvertException) {ExcelDataConvertException excelDataConvert…

Django的数据库模型迁移命令makemigrations和migrate是否会导致数据库中的数据丢失?

我们知道&#xff0c;如果在Django的文件models.py中写好了数据库模型&#xff0c;要生成对应的数据库&#xff0c;需要执行下面两条命令&#xff1a; python manage.py makemigrations python manage.py migrate其中命令 makemigrations 是生成迁移执行文件&#xff0c;命令 …

tortoiseGit fatal: Could not read from remote repository.

1、问题场景&#xff1a; 使用tortoiseGit工具pull代码的时候报错 git.exe pull --progress -v --no-rebase "origin" fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 无法从存…

投票管理平台达到投票平台投票平台平台投票

现在来说&#xff0c;公司、企业、学校更多的想借助短视频推广自己。 通过微信投票小程序&#xff0c;网友们就可以通过手机拍视频上传视频参加活动&#xff0c;而短视频微信投票评选活动既可以给用户发挥的空间激发参与的热情&#xff0c;又可以让商家和企业实现推广的目的&am…

基于图的路径规划算法对比

基于图的路径规划算法对比 算法说明与实现效果构造路网路网数据转化为图matlab代码 算法说明与实现效果 通过构造邻接矩阵&#xff0c;在构造的路网中找到一个节点通向另一个节点的最短路径&#xff0c;包括DJ&#xff0c;Floyd&#xff0c;A*&#xff0c;ACO&#xff0c;GA算…

以阻塞方式对IO文件进行读取

以阻塞方式对IO文件进行读取(test.c读取&#xff0c;test2.c发送数据) 实验结果 执行test.c生成的pro1可执行文件&#xff0c;光标显示处于阻塞状态 执行test2.c生成的pro2可执行文件&#xff0c;test.c处打印 hello dhl 三级标题test.c #include <stdlib.h> #inclu…

【Leetcode】209. 长度最小的子数组

给定一个含有 n 个正整数的数组和一个正整数 s &#xff0c;找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组&#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回 0。 示例&#xff1a; 输入&#xff1a;s 7, nums [2,3,1,2,4,3] 输出&#xff1a;…

干货满满!阿里、京东、网易等多位专家力荐的高并发编程速成笔记

前一段时间在某乎看到一个提问&#xff0c;说的是他才一年半经验&#xff0c;去面试却被各种问到分布式、高并发、多线程之间的问题。基础层面上的是可以答上来&#xff0c;但是面试官深问的话就不会了&#xff01;被问得都怀疑现在Java招聘初级岗位到底招的是初级开发还是架构…

7-7作业

发送端 #include<stdio.h> #include<Windows.h> #include<windows.h> #include<WinSock2.h> #include<string.h> #include<stdlib.h> #define ERR_OR(msg) do{\ fprintf(stderr, "__%d__", __LINE__);\ perror(msg);\ }while(0…

用Python爬取电影数据并可视化分析

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

simulink m脚本管理模型参数

clear; m 1600;%kg 默认都是double g 9.8;% m/s^2 f 0.015;%滚动阻力系数 Cd 0.3;%空气阻力系数 A 2;%m^2 delta 1.2;% 旋转质量换算系数 alpha 0;%坡度 rad 脚本写完一定要运行&#xff0c;等右侧工作区加载完成

酷瓜云课堂(企业版)v1.2.1 发布,网课网校系统,持续更新

更新内容 增加开票额度收支逻辑使用本地图像验证码升级layui-v2.8.8优化钉钉webhook优化队列处理任务优化migrations文件修正提现平台检查修正移动端配置项为空异常调整UserBalance属性 注意事项 如果你的起始版本 > v1.2.0&#xff0c;请忽略以下操作&#xff0c;按照正…