20200410:路径总和 Ⅰ Ⅱ(leetcode112 /113)
路径总和
- 题目
- 思路与算法
- 代码实现
题目
思路与算法
112题很容易,相当这是一个简单的DFS问题。
112题的递归边界条件为:
Ⅰ root为null。 Ⅱ root的左右子树为null。
113题是对输出做了改变,整体思路是一致的。
我们需要同时记录当前访问的节点并保存他,边界条件是一致的。
代码实现
112:
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/
class Solution {public boolean hasPathSum(TreeNode root, int sum) {if (root == null){return false;}sum -= root.val;if(root.left == null && root.right == null) {return (sum == 0);}return hasPathSum(root.left,sum) || hasPathSum(root.right,sum);}
}
113:
/*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode(int x) { val = x; }* }*/
class Solution {public List<List<Integer>> pathSum(TreeNode root, int sum) {// 新建结果集List<List<Integer>> res = new ArrayList<>();if (root == null) {return res;}// 双端队列来存放对应的路径数组Deque<Integer> path = new ArrayDeque<>();pathSum(root, sum, path, res);return res;}public void pathSum(TreeNode node, int sum, Deque<Integer> path, List<List<Integer>> res) {// 递归边界条件if (node == null) {return;}// 从当前sum中减去当前节点的值,再将减去的这个节点值添加到path队列存放sum -= node.val;path.addLast(node.val);if (sum == 0 && node.left == null && node.right == null) {// 存放到res结果集中res.add(new ArrayList<>(path));// 清空pathpath.removeLast();return;}pathSum(node.left, sum, path, res);pathSum(node.right, sum, path, res);// 递归完成以后,再次清空path.removeLast();}
}
20200410:路径总和 Ⅰ Ⅱ(leetcode112 /113)相关推荐
- LeetCode 112. 路径总和 、113. 路径总和 II 思考分析
目录 112. 路径总和 题目 递归解 递归解,其他人的解法 迭代解,其他人的解法 113. 路径总和 II 题目 递归解 递归解,参考别人的思路 112. 路径总和 题目 给定一个二叉树和一个目标和 ...
- 113. 路径总和 II golang
113. 路径总和 II 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及目标和 sum = ...
- Java实现 LeetCode 113 路径总和 II
113. 路径总和 II 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及目标和 sum = ...
- leetcode 113. 路径总和 II
难度:中等 频次:60 题目: 给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径. 叶子节点 是指没有子节点的节点. 解 ...
- 54. Leetcode 113. 路径总和 II (二叉树-二叉树路径和)
给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径.叶子节点 是指没有子节点的节点.示例 1: 输入:root = [5, ...
- 文巾解题 113. 路径总和 II
1 题目描述 2 解题思路 2.1BFS 广度优先搜索 我们设计一个这样的队列 队列的每个元素是一个三元数组:从根节点到当前点的路径总和+当前节点+从根节点到当前节点的路径 每次我们从队列中弹出一个元 ...
- 113. 路径总和 (剑指 Offer 34. 二叉树中和为某一值的路径)(回溯算法)
给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径. 叶子节点 是指没有子节点的节点. 示例 1: 输入:root = [ ...
- 【Leetcode】113. 路径总和 II
给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及目标和 sum = 22, 5 ...
- leetcode 113. 路径总和 II(Path Sum II)
目录 题目描述: 示例: 解法: 题目描述: 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及 ...
最新文章
- mysql事务实现数据更新_MySql事务select for update及数据的一致性处理讲解
- android ------- TCP/IP
- did双重差分法_互助问答第252期:双重差分平行趋势检验等问题
- linux which
- Activiti 简易教程
- django app中扩展users表
- linkedhashmap 顺序_LinkedHashMap 源码详细分析(JDK1.8)
- 总结了线程安全性的二十四个精华问题
- 如何设置单词第一个字母大写_大写一行中每个单词的第一个和最后一个字母
- js与jquery操作
- WTA (winner-take-all) 与 自组织映射 SOM (self organizing map)的理解
- [ACM] hdu 2082 找单词 (母函数)
- Activity 的启动模式
- 全球1/10女性受到盆腔脏器脱垂困扰
- 台风怎么看内存颗粒_普条居然采用南亚A-DIE HR颗粒,光威TYPEα内存条稳超3200MHZ...
- linux 内核模块 编写例子,LINUX内核模块编程8
- 设置session的有效时间
- Oracle 查询时间(当日)
- MT4-EA自动化交易研究笔记(2022-04-22)
- 给小学生科普计算机知识竞赛,小学生科普知识竞赛PPT.ppt
热门文章
- Arm 进击自定义指令集,成立自动驾驶计算联盟!
- Python 爬取 20 万条评论,告诉你周杰伦新歌为啥弄崩 QQ 音乐?
- IPv6 带来的反欺诈难题,程序员该如何破解?
- Python 连续三年夺冠、PHP 受排挤,揭晓 IEEE Spectrum 2019 年度编程语言排行榜
- 首款搭载国产CPU的域名服务器发布;iPhone彻底淘汰Lightning接口?ChromeOS 75发布 | 极客头条...
- 程序员如何高性能排序多个文件?
- 互联网年终福利大盘点,告诉你过年的正确姿势!
- ARKit:也许是 iPhone 十周年最好的新开始
- 阿克苏计算机考试成绩查询,阿克苏高考成绩查询系统2021
- python中csv库写入表头_python的pandas工具包,保存.csv文件时不要表头的实例