博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
113. 路径总和 II
阅读量:6296 次
发布时间:2019-06-22

本文共 1044 字,大约阅读时间需要 3 分钟。

给定一个二叉树和一个目标和,找到所有从根节点到叶子节点路径总和等于给定目标和的路径。

说明: 叶子节点是指没有子节点的节点。

示例:

给定如下二叉树,以及目标和 sum = 22

5             / \            4   8           /   / \          11  13  4         /  \    / \        7    2  5   1

返回:

[   [5,4,11,2],   [5,8,4,5]]

 

/**分别往左子树,右子树递归遍历所有路径,每次递归就减去相应的节点值,到了叶子结点,如果剩余值与叶子结点值相等,则该条路径符合要求,记录下该条路径,不符合的中间结果就pop掉 */class Solution {    List
> res = new ArrayList<>(); public List
> pathSum(TreeNode root, int sum) { if(root == null) return res; List
path = new ArrayList<>(); dfs(root,sum,path); return res; } private void dfs(TreeNode root, int sum, List
path){ path.add(root.val); if(root.left == null && root.right == null && root.val == sum) //如果剩余值与叶子结点值相等 res.add(new ArrayList
(path)); if(root.left != null) dfs(root.left,sum-root.val,path); if(root.right != null) dfs(root.right,sum-root.val,path); path.remove(path.size()-1); }}

 

转载于:https://www.cnblogs.com/Roni-i/p/10510840.html

你可能感兴趣的文章
music-音符与常用记号
查看>>
sql操作命令
查看>>
zip 数据压缩
查看>>
Python爬虫学习系列教程
查看>>
【数据库优化专题】MySQL视图优化(二)
查看>>
【转载】每个程序员都应该学习使用Python或Ruby
查看>>
PHP高级编程之守护进程,实现优雅重启
查看>>
PHP字符编码转换类3
查看>>
rsync同步服务配置手记
查看>>
http缓存知识
查看>>
Go 时间交并集小工具
查看>>
iOS 多线程总结
查看>>
webpack是如何实现前端模块化的
查看>>
TCP的三次握手四次挥手
查看>>
关于redis的几件小事(六)redis的持久化
查看>>
webpack4+babel7+eslint+editorconfig+react-hot-loader 搭建react开发环境
查看>>
Maven 插件
查看>>
初探Angular6.x---进入用户编辑模块
查看>>
计算机基础知识复习
查看>>
【前端词典】实现 Canvas 下雪背景引发的性能思考
查看>>