首页 > 试题广场 >

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

[编程题]二叉树中和为某一值的路径(二)
  • 热度指数:781750 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
输入一颗二叉树的根节点root和一个整数expectNumber,找出二叉树中结点值的和为expectNumber的所有路径。
1.该题路径定义为从树的根结点开始往下一直到叶子结点所经过的结点
2.叶子节点是指没有子节点的节点
3.路径只能从父节点到子节点,不能从子节点到父节点
4.总节点数目为n

如二叉树root为{10,5,12,4,7},expectNumber为22
则合法路径有[[10,5,7],[10,12]]

数据范围:
树中节点总数在范围 [0, 5000] 内
-1000 <= 节点值 <= 1000
-1000 <= expectNumber <= 1000
示例1

输入

{10,5,12,4,7},22

输出

[[10,5,7],[10,12]]

说明

返回[[10,12],[10,5,7]]也是对的      
示例2

输入

{10,5,12,4,7},15

输出

[]
示例3

输入

{2,3},0

输出

[]
示例4

输入

{1,3,4},7

输出

[]

说明:本题目包含复杂数据结构TreeNode,点此查看相关信息
头像 牛客题解官
发表于 2020-06-01 14:56:35
精华题解 题目的主要信息: 题目给出我们一棵树的树根结点指针,和一个期待值 我们要找出这棵树中,从根节点到叶子节点的路径上的节点值之和等于该期待值的路径,找出所有这样的路径并返回。 举一反三: 学习完本题的思路你可以解决如下题目: JZ82. 二叉树中和为某一值的路径(一) JZ84. 二叉树中和为某一值 展开全文
头像 Maokt
发表于 2021-06-22 09:56:46
精华题解 解题思路: 1、采用深度优先搜索的方式,枚举每一条从根节点到叶子节点的路径。当我们遍历到叶子节点,且此时路径和恰为目标和时,我们就找到了一条满足条件的路径。 2、我们也可以采用广度优先搜索的方式,遍历这棵树。当我们遍历到叶子节点,且此时路径和恰为目标和时,我们就找到了一条满足条件的路径 展开全文
头像 牛客500979850号
发表于 2021-07-18 00:52:12
精华题解 方法一:递归DFS 使用DFS递归加回溯的方法。图解过程如下: 代码如下: class Solution { public: vector<vector<int>> ans; vector<int> path; vector< 展开全文
头像 leaves0924
发表于 2021-06-22 15:05:54
精华题解 题目描述 输入一颗二叉树的根节点和一个整数,按字典序打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。示例1输入:{10,5,12,4,7},22返回值:[[10,5,7],[10,12]] 题目分析 路径定义为从树的根结点开始往下直到 展开全文
头像 NumPy
发表于 2021-06-28 22:54:38
精华题解 一、题目描述 JZ24 二叉树中和为某一值的路径题目大意:输入一颗二叉树的根节点和一个整数, 按字典序打印出二叉树中节点值的和为输入整数的所有路径. 路径定义为从数的根节点开始往下一直到叶节点形成一条路径.注意审题:1. 按字典序打印出所有路径 2. 路径一定是从根结点到某个叶子节点的路径 二、算法 展开全文
头像 Peterliang
发表于 2021-06-23 20:39:00
精华题解 题意分析 给你一棵二叉树,需要求出这棵二叉树从根节点到叶子节点形成的连续的路径中路径和等于给定的数字的情况,并且按照字典序输出。 样例解释 对于样例一,我们发现一共存在三条路径,分别为[10,5,4],[10,5,7]和[10,12].所以我们样例就很好理解了。 思路分析 DFS+回溯法 展开全文
头像 一叶浮尘
发表于 2019-08-17 07:40:33
输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前) 在这道题目的答案中根本就没有校验数组的长度啊,真的是错误的引导做题之前忘记了对于树类型的题目, 展开全文
头像 zhuanghua
发表于 2019-07-31 23:50:02
在做这一题之前,我们先来看看怎么输出二叉树的从根结点到每个叶子节点的路径。 如: 1 / \ 2 3 /\ /4 5 6 则返回 [[1, 2, 4], [1, 2, 5], [1, 展开全文
头像 不努力就会倒数
发表于 2020-01-11 13:15:33
/** 看了几位同学的代码后,才最后写出来,但不是用了别人的,是按照自己的代码风格写的 这道题的思路无非是树的深度优先遍历 我的思路是递归:递归方法是返回当前路径下匹配目标值的路径。 目标值 = 目标值 - 当前节点值 共有几种情况: 0,当节点为空,return 1,当目标值小于0,retu 展开全文
头像 ZhangHao0810
发表于 2021-07-20 18:19:35
递归 遇到路径长度的问题,可以利用扣减的方式,返回的是一个字典,故只有遍历到叶子结点 且target扣减到0 为一个字典元素。 ArrayList中有一个 构造,可以传入 Collection接口的实现类。 public class Solution { private ArrayList& 展开全文
头像 牛客825789185号
发表于 2021-10-05 20:59:06
/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ #inclu 展开全文
头像 年少挽剑世无双·
发表于 2020-03-10 23:24:39
题目描述输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前) 解答:数组长度大的数组靠前 ???这个问题让我想了很久,一开始想到把左右子节点中小的节 展开全文
头像 一颗闪闪发亮的马路星
发表于 2020-02-09 20:11:05
题目描述输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前) 首先我们可以发现,我们需要遍历整个二叉树,所以我们需要一个辅助function来帮助我 展开全文
头像 jalr4ever
发表于 2019-08-31 02:21:14
剑指 - 二叉树中和为某一值的路径 题目 输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前) 思路 回溯法的最佳实践! 注意题的要义是根结点到叶子结 展开全文
头像 len1
发表于 2020-06-02 19:57:37
语言:Java算法:递归数据结构:栈 import java.util.ArrayList; import java.util.Stack; public class T23_FindPath { private ArrayList<ArrayList<Integer& 展开全文
头像 程序猿的浪漫
发表于 2019-10-03 22:13:51
题目:输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。(注意: 在返回值的list中,数组长度大的数组靠前) 思路分析:(1)首先该题是基于递归去遍历整棵树,遍历完每一条路径,遍历的顺序是先根节点,然 展开全文