当前位置:网站首页>剑指Offer 34.二叉树中和为某一值的路径 dfs+回溯
剑指Offer 34.二叉树中和为某一值的路径 dfs+回溯
2022-08-02 03:33:00 【HotRabbit.】
题目
给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。
叶子节点 是指没有子节点的节点。
示例 1:

输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22
输出:[[5,4,11,2],[5,8,4,5]]
示例 2:

输入:root = [1,2,3], targetSum = 5
输出:[]
示例 3:
输入:root = [1,2], targetSum = 0
输出:[]
提示:
- 树中节点总数在范围
[0, 5000]内 -1000 <= Node.val <= 1000-1000 <= targetSum <= 1000
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/er-cha-shu-zhong-he-wei-mou-yi-zhi-de-lu-jing-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路
dfs+回溯算法,图中右边的线都是回溯的操作。每次到新节点都会在队列尾部添加元素,继续向左、右节点遍历到底,如果当前节点是上一个节点的左节点,回溯上一个节点之后继续遍历右节点,再进行回溯。

题解
class Solution {
List<List<Integer>> lists = new LinkedList<List<Integer>>();
Deque<Integer> path = new LinkedList<>();
public List<List<Integer>> pathSum(TreeNode root, int target) {
dfs(root,target);
return lists;
}
public void dfs(TreeNode root ,int target){
if (root == null){
return;
}
path.offerLast(root.val);
target -= root.val;
if (root.left == null && root.right == null && target == 0){
lists.add(new LinkedList<Integer>(path));
}
dfs(root.left,target);
dfs(root.right,target);
path.pollLast();//回溯
}
}
边栏推荐
- 与TI的lvds芯片兼容-GM8284DD,GM8285C,GM8913,GM8914,GM8905C,GM8906C,国腾振芯LVDS类芯片,
- 判断子序列 —— LeetCode-392
- Website development plan research
- Lightly 支持 Markdown 文件在线编写(文中提供详细 Markdown 语法)
- 【科普贴】I2C接口详解——偏硬件解析
- TC358860XBG BGA65 东芝桥接芯片 HDMI转MIPI
- 【LeetCode】求和
- 使用pyqt弹出消息提示框
- Anaconda(Jupyter)里发现不能识别自己的GPU该怎么办?
- 所有子字符串中的元音 —— LeetCode - 2063
猜你喜欢
随机推荐
GM8775C规格书,MIPI转LVDS,MIPI转双路LVDS分享
Typora use
与TI的lvds芯片兼容-GM8284DD,GM8285C,GM8913,GM8914,GM8905C,GM8906C,国腾振芯LVDS类芯片,
【plang 1.4.4】编写茶几玛丽脚本
【plang 1.4.3】定时器的使用
分割回文串 DP+回溯 (LeetCode-131)
AD PCB导出Gerber文件(非常详细的步骤)
笔记本电脑充电问题
bluez5.50+pulseaudio实现蓝牙音响音频播放
TC358860XBG BGA65 东芝桥接芯片 HDMI转MIPI
【plang 1.4.4】编写贪吃蛇脚本
改变文件的扩展名
所有子字符串中的元音 —— LeetCode - 2063
2019 - ICCV - 图像修复 Image Inpainting 论文导读《StructureFlow: Image Inpainting via Structure-aware ~~》
关于IIC SDA毛刺的那些事
【面试必看】链表的常见笔试题
引擎开发日志:集成Bullet3物理引擎
Modify hosts file using batch script
LT9211芯片资料分享
Lightly:新一代的C语言IDE









