编程题—剑指offer: 二叉树中和为某一值的路径

二叉树相关编程题总结 关于二叉树的五道面试题的总结 求二叉树的最远两个结点的距离; 由前序遍历和中序遍历重建二叉树; 判断一棵树是否是完全二叉树; 求二叉树两个节点的最近公共祖先; 将二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 注:本篇博客就这五道面试题,并不是单纯的给出求解代码,而是全面的进行分析,并进行问题的延伸,在求解过程中对问题的延伸都有代码的实现,so! 阅读详情

题目链接

题目描述
输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。

 

示例:
给定如下二叉树,以及目标和 sum = 22,

              5
             / \
            4   8
           /   / \
          11  13  4
         /  \    / \
        7    2  5   1
返回:

[
   [5,4,11,2],
   [5,8,4,5]
]

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/er-cha-shu-zhong-he-wei-mou-yi-zhi-de-lu-jing-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路
1、深度优先搜索,存在一个List里面,如果和为指定的数字则存入即可
坑点:
1、必须是根到叶子节点才算是满足条件的路径
2、数字有可能是负数、不要加到比给定的数字大就停止
通过代码
class Solution {
    LinkedList<TreeNode> flag = new LinkedList<TreeNode>();
    List<List<Integer>> res = new ArrayList<List<Integer>>();
    public List<List<Integer>> pathSum(TreeNode root, int sum) {
    	find(root, sum, 0);
    	return res;
    }
    public void find(TreeNode root,int sum,int num){
    	if (root==null) return ;
    	else if ((num+root.val==sum)&&(root.left==null)&&(root.right==null)){
        	flag.add(root);
        	List<Integer> res1= new ArrayList<Integer>();
        	for(int i=0;i<flag.size();i++) {
        		res1.add(flag.get(i).val);
        	}
        	res.add(res1);
        	flag.remove(flag.size()-1);
        	return ;
        } else {
        	flag.add(root);
        	find(root.left, sum, num+root.val);
        	find(root.right, sum, num+root.val);
        	flag.remove(flag.size()-1);
        }
    }
}
剑指offer题目及答案 剑指offer最近在牛客网上刷剑指offer的题目,现将题目和答案总结如下 阅读详情

相关推荐

剑指Offer——编程题的Java实现(更新完毕……)

剑指Offer——编程题的Java实现

mine_song的博客 1万+

二叉树中和为某一值的路径-字节跳动笔试编程C/C++

(更多博文,欢迎来我的博客学习交流have_a_cat的博客_优快云博客-PHP,Dcat-Admin框架,大厂热门笔试面试领域博主) 题目描述 输入一颗二叉树的根节点root和一个整数expectNumber,找出二叉树中结点值的和为expectNumber的所有路径。 1.该题路径定义为从树的根结点开始往下一直到叶子结点所经过的结点 (有猫彬大吼提示:这里要非常注意--是直到叶子结点,就是所一定要走到叶子结点了,该结点没有子结点了,才可以! 注意示例3) 2.叶子节点是指没有子节点的节点

have_a_cat的博客 728

牛客 剑指offer_编程题 详细题解 (已完结)

文章目录剑指offer_编程题【1.二维数组中的查找】【2.替换空格】C++JAVA【3.从尾到头打印链表】【4.重建二叉树】【5.用两个栈实现队列】【6.旋转数组的最小数字】暴力Sort二分法【7.斐波那契数列】【8.跳台阶】【9.变态跳台阶】 剑指offer_编程题 【1.二维数组中的查找】 【题目描述】 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都...

weixin_44211980的博客 4880

剑指offer编程题:二叉树中和为某一值的路径

题目: 输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 思路: 对二叉树叶子节点的遍历,其实就是对二叉树进行前序遍历的基础上判定一下当前节点是否是叶子节点(左右子节点都是null)。 代码: import java.util.ArrayList; public class Solution { ...

Sean_JY的博客 314

稳定性性能系列之五——Native Crash深度分析:工具实战

深入理解Native Crash的机制与分析方法,掌握addr2line、ndk-stack、gdb等核心工具的实战使用,学会从Tombstone文件中快速定位问题根因

Cheson的专栏 1543

保姆级教程:用ArcGIS Pro搞定云南30米分辨率DEM地形图(附数据下载与配色方案)

本文提供了一份详细的ArcGIS Pro教程,指导用户如何制作云南30米分辨率DEM地形图。从数据下载、预处理到镶嵌与质量控制,再到地形分析与可视化,全流程覆盖云南复杂地形的处理要点。特别包含数据下载链接、配色方案及常见问题解决方案,适合地理信息分析新手和专业人士。

weixin_30467199的博客 309

剑指Offer_编程题24:二叉树中和为某一值的路径(DFS)

题目:输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点(必须从根到叶)形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前) 牛客网:链接 深度优先搜索:DFS。从根节点出发,沿着左子树方向进行纵向遍历,直到找到叶子节点为止。然后回溯到前一个节点,进行右子树节点的遍历,直到遍历完所有可达节点...

卷卷萌的博客 476

CTF 命令执行绕过总结

tac:从最后一行开始显示,可以看出 tac 是 cat 的反向显示。或:rce-xor-or.php & rce-xor-or.py。# ls -t >shell 将输出输入到shell文件中。异或:rce-xor.php & rce-xor.py。%09(url传递)(cat%09flag.php)sh /flag 2>%261 //报错出文件内容。2、1使用空变量$*和$@,$x,${x}绕过。7、异或无符号(过滤0-9a-zA-Z)more:一页一页的显示档案内容。

jnszstmei的博客 1959

牛客网-剑指offer[编程题]二叉树中和为某一值的路径 js详解

这道题也是非常有难度的题 它体现了有限制条件的树的深度遍历 假设有一个这样的树: 我们要寻找的目标和是7 在find函数内 我们在temp中先存入root.val 2 在 if(root.left != null){ find(root.left,num-root.val); }中,我们发现左子树并不符合条件 则pop左子树的值,转而走向右子树 右子树符合我们要找的值 则result.push...

kotoriyou的博客 248

美军利用MANET技术实现无人作战单元协同作战

本文首先介绍了移动自组织网络 (MANET)以及Wave Relay®波形中继技术,并探讨了波形中继MANET平台在美空军ABMS项目等军事方面的运用情况。

guanyifu9的博客 853

【WRF安装】WRF环境配置移植详细说明

【WRF安装】WRF环境配置移植详细说明

WW、forever的博客 819

剑指offer编程题(JAVA实现)——第24题:二叉树中和为某一值的路径

github https://github.com/JasonZhangCauc/JZOffer import java.util.ArrayList; /** * * 剑指offer编程题(JAVA实现)——第24题:二叉树中和为某一值的路径 * * 输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。 * 路径定义为从树的根结点开始...

JZ 6371

25、量子计算:中性原子与约瑟夫森结量子比特

本文详细探讨了中性原子和约瑟夫森结两种量子比特在量子计算中的应用。中性原子量子比特利用光晶格实现量子态的操控,具有长相干时间的优势,但面临可扩展性和多量子比特操作的挑战;而约瑟夫森结量子比特基于超导技术,结合半导体制造工艺,具有低耗散和潜在的高可扩展性,但在参数控制和环境干扰方面存在难题。文章还比较了这两种方案的性能、应用场景及未来发展趋势,展望了它们在量子计算发展中的潜力与突破方向。

ol789012的博客 212

C/C++编程题刷题:剑指 Offer 34. 二叉树中和为某一值的路径

剑指 Offer 34. 二叉树中和为某一值的路径 输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。 示例: 给定如下二叉树,以及目标和sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1.

Emotion的博客 191

FPGA原理与结构(3)——存储单元(Storage Elements)

触发器,锁存器,寄存器,为什么xilinx推荐高电平复位,为什么latch依然存在,FPGA中的触发器与锁存器

apple_53311083的博客 2961

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

剑指offer:[编程题]二叉树中和为某一值的路径(Python)

题目描述:输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。第一次做的解题思路:二叉树的深度优先搜索~搜索到叶子节点后,将该叶子节点pop出来,同时记得num要加回去,开始另一条支路的搜索~ 几点注意: 1.深拷贝和浅拷贝的区别,深拷贝要用copy.deepcopy() 2.为了防止路径只到...

Jillian_sea的博客 455

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【剑指Offer面试编程题】题目1368:二叉树中和为某一值的路径--九度OJ

这道题目的思路应该还是比较清晰的,首先DFS是基础,然后在DFS过程中记录过经过的节点,并注意更新路径的和值,当然也需要动态的维护好经过节点的序列,注意增删,也即访问的时候需要增,当需要往回撤时需要删除节点。最后需要对保存的结果序列排序。

一路向前 1171

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

剑指offer:二叉树中和为某一值的路径

题目: 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 思路: 因为是从根结点到叶结点的路径值和,所以要选择前序遍历。当用前序遍历的方式访问某一结点时,把该结点添加到路径上,并累加该结点的值。如果该结点是叶结点并且路径中结点值是输入的整数值,当前路径就符合要求,打印出来。如果当前结点是非叶结点,则继

wuxiaosi808的博客 265

《剑指offer》66道算法题合集(java实现)

1

weixin_43774841的博客 2万+

剑指offer算法题024:二叉树中和为某一值的路径

小编在求职找找工作期间剑指offer上的算法题刷了很多遍,并且每道题小编当时都总结了一种最适合面试时手撕算法的最优解法。考虑到剑指offer算法题在面试中的高频出现,小编每天和大家分享一道剑指offer上的算法题,以及小编总结的答案。下面是第024道剑指offer算法题: 题目描述 输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。 分析 递归遍历二叉树即可 import java.util.ArrayLis

我的博客 385

剑指offer—34.二叉树中和为某一值的路径—分析及代码(Java)

剑指offer——34.二叉树中和为某一值的路径——分析及代码[Java]一、题目二、分析及代码1. 递归(1)思路(2)代码(3)结果三、其他 一、题目 输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前) 二、分析及代码 1. 递归 (1)思路 根据题中路径的定义,起点必须为根节点,终点必须为叶节点。结合路径特点,可参照前序遍历方法,递归遍历二叉树可能满足

江南土豆的博客 188

二叉树中和为某一值的路径

输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前) import java.util.ArrayList; public class Solution { ArrayList<ArrayList<Integer>> ...

wfh15140475085的博客 146

剑指Offer_编程题(栈的压入、弹出序列 / 从上往下打印二叉树 / 二叉搜索树的后序遍历序列 / 二叉树中和为某一值的路径)

剑指Offer_编程题 21、栈的压入、弹出序列 时间限制:1秒 空间限制:32768K 热度指数:382163 本题知识点: 栈 题目描述:输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否可能为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个弹出序列,但4,3,5,1,2就不可能是该压...

DeathYmz的博客 517

剑指 Offer 34. 二叉树中和为某一值的路径 JavaScript 实现

剑指 Offer 34. 二叉树中和为某一值的路径 JavaScript 实现一级目录代码 一级目录 输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的节点形成一条路径。 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1 返回: [

ryyzxf的博客 163

剑指offer-[编程题]二叉树中和为某一值的路径

二叉树中和为某一值的路径 https://www.nowcoder.com/practice/b736e784e3e34731af99065031301bca?tpId=13&tqId=11177&tPage=2&rp=2&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking...

klsdjft的博客 161
上一篇: 编程题—leetcode42:接雨水
下一篇: 编程题—leetcode1143:最长公共子序列
code_AC
博客等级 码龄12年 255粉丝 109原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值