[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)链接 ...
随机推荐
- BitSail issue 持续更新中,快来挑战,赢取千元礼品!
背景介绍 近期,BitSail 社区发布了 Contributor 激励计划第一期,包含众多 issue,吸引了很多热衷开源的小伙伴的加入,详情可查看https://mp.weixin.qq.co ...
- POJ1426: Find The Multiple
题目: 给定一个正整数n,请编写一个程序来寻找n的一个非零的倍数m,这个m应当在十进制表示时每一位上只包含0或者1.你可以假定n不大于200且m不多于100位. 提示:本题采用Special Judg ...
- Educational Codeforces Round 80 A - D题题解(又是卡很久的一场比赛)
第八场 CodeForces - 1288A. Deadline Example input 3 1 1 4 5 5 11 output YES YES NO Note In the first te ...
- CodeForces - 651A Joysticks ( 不难 但有坑 )
正式更换编译器为: VS Code 如何配置环境:click here 代码格式化工具:clang-format A. Joysticks 题目连接: http://www.codeforces.co ...
- 记一次el-checkbox包裹一层div,点击div勾选复选框,点击复选框却没反应的bug
<div class="account-item" v-for="item in accountList" :key="item.id" ...
- P5719 水题
https://www.luogu.com.cn/problem/P5719 唠唠:别看这题很水,且只要求保留小数点后一位,倘若用float而不是double的话就无法AC,洛谷评测则只有40分.所以 ...
- 机器学习-无监督机器学习-LDA线性判别分析-25
目录 1. Linear Discriminant Analysis 线性判别分析 1. Linear Discriminant Analysis 线性判别分析 经常被用于分类问题的降维技术,相比于P ...
- MySQL的SQL优化常用30种方法[转]
MySQL的SQL优化常用30种方法 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或< ...
- 【C++】类大小
[来源]C++类大小详尽讲解 [来源]空类(empty class)
- crypto常用算法
欧几里得算法(辗转相除法) def gcd(a, b): if b == 0: return a else: return gcd(b, a % b) 扩展欧几里得算法 def ext_euclid( ...