路径总和

  • 题目
  • 思路与算法
  • 代码实现

题目

思路与算法

  1. 112题很容易,相当这是一个简单的DFS问题。

  2. 112题的递归边界条件为:

    Ⅰ root为null。
    Ⅱ root的左右子树为null。
    
  3. 113题是对输出做了改变,整体思路是一致的。

  4. 我们需要同时记录当前访问的节点并保存他,边界条件是一致的。

代码实现

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)相关推荐

  1. LeetCode 112. 路径总和 、113. 路径总和 II 思考分析

    目录 112. 路径总和 题目 递归解 递归解,其他人的解法 迭代解,其他人的解法 113. 路径总和 II 题目 递归解 递归解,参考别人的思路 112. 路径总和 题目 给定一个二叉树和一个目标和 ...

  2. 113. 路径总和 II golang

    113. 路径总和 II 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及目标和 sum = ...

  3. Java实现 LeetCode 113 路径总和 II

    113. 路径总和 II 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及目标和 sum = ...

  4. leetcode 113. 路径总和 II

    难度:中等 频次:60 题目: 给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径. 叶子节点 是指没有子节点的节点. 解 ...

  5. 54. Leetcode 113. 路径总和 II (二叉树-二叉树路径和)

    给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径.叶子节点 是指没有子节点的节点.示例 1: 输入:root = [5, ...

  6. 文巾解题 113. 路径总和 II

    1 题目描述 2 解题思路 2.1BFS 广度优先搜索 我们设计一个这样的队列 队列的每个元素是一个三元数组:从根节点到当前点的路径总和+当前节点+从根节点到当前节点的路径 每次我们从队列中弹出一个元 ...

  7. 113. 路径总和 (剑指 Offer 34. 二叉树中和为某一值的路径)(回溯算法)

    给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径. 叶子节点 是指没有子节点的节点. 示例 1: 输入:root = [ ...

  8. 【Leetcode】113. 路径总和 II

    给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及目标和 sum = 22, 5         ...

  9. leetcode 113. 路径总和 II(Path Sum II)

    目录 题目描述: 示例: 解法: 题目描述: 给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径. 说明: 叶子节点是指没有子节点的节点. 示例: 给定如下二叉树,以及 ...

最新文章

  1. mysql事务实现数据更新_MySql事务select for update及数据的一致性处理讲解
  2. android ------- TCP/IP
  3. did双重差分法_互助问答第252期:双重差分平行趋势检验等问题
  4. linux which
  5. Activiti 简易教程
  6. django app中扩展users表
  7. linkedhashmap 顺序_LinkedHashMap 源码详细分析(JDK1.8)
  8. 总结了线程安全性的二十四个精华问题
  9. 如何设置单词第一个字母大写_大写一行中每个单词的第一个和最后一个字母
  10. js与jquery操作
  11. WTA (winner-take-all) 与 自组织映射 SOM (self organizing map)的理解
  12. [ACM] hdu 2082 找单词 (母函数)
  13. Activity 的启动模式
  14. 全球1/10女性受到盆腔脏器脱垂困扰
  15. 台风怎么看内存颗粒_普条居然采用南亚A-DIE HR颗粒,光威TYPEα内存条稳超3200MHZ...
  16. linux 内核模块 编写例子,LINUX内核模块编程8
  17. 设置session的有效时间
  18. Oracle 查询时间(当日)
  19. MT4-EA自动化交易研究笔记(2022-04-22)
  20. 给小学生科普计算机知识竞赛,小学生科普知识竞赛PPT.ppt

热门文章

  1. Arm 进击自定义指令集,成立自动驾驶计算联盟!
  2. Python 爬取 20 万条评论,告诉你周杰伦新歌为啥弄崩 QQ 音乐?
  3. IPv6 带来的反欺诈难题,程序员该如何破解?
  4. Python 连续三年夺冠、PHP 受排挤,揭晓 IEEE Spectrum 2019 年度编程语言排行榜
  5. 首款搭载国产CPU的域名服务器发布;iPhone彻底淘汰Lightning接口?ChromeOS 75发布 | 极客头条...
  6. 程序员如何高性能排序多个文件?
  7. 互联网年终福利大盘点,告诉你过年的正确姿势!
  8. ARKit:也许是 iPhone 十周年最好的新开始
  9. 阿克苏计算机考试成绩查询,阿克苏高考成绩查询系统2021
  10. python中csv库写入表头_python的pandas工具包,保存.csv文件时不要表头的实例