[LeetCode刷题记录]113 路径总和 II
题目描述
给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。
说明: 叶子节点是指没有子节点的节点。
难度
中等
题解
采用深度搜索优先,遍历每条从根节点到叶子节点的路径。遍历到叶子节点,且此路径和满足条件,则该路径即为一条满足要求的路径。
实现
// 声明两个全局变量用来保存结果
// ans保存所有满足条件的路径
var ans [][]int
// path保存一条满足条件的路径
var path []int
// 深度搜索优先,递归调用
func dfs(root *TreeNode, sum int) {
if root == nil {
return
}
path = append(path, root.Val)
sum -= root.Val
if root.Left == nil && root.Right == nil && sum == 0 {
// path是全局共享的
tmp := make([]int, len(path))
copy(tmp, path)
ans = append(ans, tmp)
}
dfs(root.Left, sum)
dfs(root.Right, sum)
path = path[:len(path)-1]
}
func pathSum(root *TreeNode, sum int) [][]int {
ans = [][]int{}
path = []int{}
dfs(root, sum)
return ans
}
声明:本作品采用署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)进行许可,使用时请注明出处。
Author: MengBin
[LeetCode刷题记录]113 路径总和 II的更多相关文章
- LeetCode刷题笔记-递归-路径总和
题目描述: 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及目标和 su ...
- C#LeetCode刷题之#40-组合总和 II(Combination Sum II)
目录 问题 示例 分析 问题 该文章已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3666 访问. 给定一个数组 candidates ...
- 刷题-力扣-113. 路径总和 II
113. 路径总和 II 题目链接 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/path-sum-ii 著作权归领扣网络所有.商业转载请联系 ...
- Java实现 LeetCode 113 路径总和 II
113. 路径总和 II 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及目标和 sum = ...
- leetcode刷题记录--js
leetcode刷题记录 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但 ...
- Leetcode刷题记录(python3)
Leetcode刷题记录(python3) 顺序刷题 1~5 ---1.两数之和 ---2.两数相加 ---3. 无重复字符的最长子串 ---4.寻找两个有序数组的中位数 ---5.最长回文子串 6- ...
- [LeetCode] 113. 路径总和 II
题目链接 : https://leetcode-cn.com/problems/path-sum-ii/ 题目描述: 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径 ...
- 代码随想录算法训练营day18 | leetcode 513.找树左下角的值 ● 112. 路径总和 113.路径总和ii ● 106.从中序与后序遍历序列构造二叉树
LeetCode 513.找树左下角的值 分析1.0 二叉树的 最底层 最左边 节点的值,层序遍历获取最后一层首个节点值,记录每一层的首个节点,当没有下一层时,返回这个节点 class Solutio ...
- LeetCode 113. 路径总和 II(Path Sum II)
题目描述 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及目标和 sum = 22, 5 / ...
- 【每日一题】【DFS/回溯】2022年1月1日-113. 路径总和 II
给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径. 叶子节点 是指没有子节点的节点. 来源:力扣(LeetCode)链接 ...
随机推荐
- 数据治理如何做?火山引擎DataLeap帮助这款产品3个月降低计算成本20%
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 本文讲述字节跳动一款 App 产品的数据治理故事.该产品随着用户体量和数据体量不断增长,数仓的任务量.数据量也不断 ...
- 火山引擎 DataLeap 一招教你避坑“数据开发”中的资源隔离问题
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 在离线数仓开发过程中,研发人员需要根据业务变化,在开发/生产环境中不断切换.解析.调试.以往,企业一般通过人工方式 ...
- 【已解决】:Original error: Could not extract PIDs from ps output. PIDS: [], Procs: [“ps: uiautomator”]
报错截图 因为appium服务用的是1.4.x版本,使用的是 uiatumator1.0在android7.0得不到支持,所以获取PIDS得到空. 解决办法 找到Appium安装目录下node_mod ...
- 鸿蒙HarmonyOS实战-ArkTS语言(基本语法)
一.ArkTS语言基本语法 1.简介 HarmonyOS的ArkTS语言是一种基于TypeScript开发的语言,它专为HarmonyOS系统开发而设计.ArkTS语言结合了JavaScript的灵活 ...
- Tomcat--安装&&配置文件
配置信息 centos:7.8 tomcat:7.0.3 jdk:1.8 1 部署java环境 [root@localhost ~]# tar xvf jdk-8u181-linux-x64.tar. ...
- [JAVA基础]后端原理
后端原理 [[网站架构]5分钟了解后端工作原理.为什么Tomcat长时间运行会崩溃?高并发线程池怎么设置?] https://www.bilibili.com/video/BV1PB4y11795/? ...
- 关于 Jupyter 导出 PDF/Latex 格式报错的简单解决方法
利用 Jupyter 提供的 Print Preview 功能,然后鼠标右键点击打印,就能导出PDF了,而且不会出问题,中文,图片都可以
- POJ: 2236 Wireless Network 题解
POJ 2236 Wireless Network 加工并储存数据的数据结构 并查集 这是并查集的基本应用,两台修好的电脑若距离d内则加入合并.不过不小心的话会TLE,比如: #include < ...
- signed main 和 int main 的区别
事实上只是因为有人直接 #define int long long 了...然后int main改成signed main就行了 #define int long long ... signed ma ...
- OpenSCA受邀出席2023 Open Compliance Summit
近日,由Linux基金会主办的2023 Open Compliance Summit(开放合规峰会,简称OCS)在日本东京隆重召开.悬镜安全旗下全球极客开源数字供应链安全社区OpenSCA受邀参与,O ...