【剑指offer】_10二叉树和为某一路径值
题目描述
输入一颗二叉树的跟节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
解题思路
要求一路径的和,那么必然终止条件为叶子结点,从根结点出发,从左往右,每条路径的和都与给定的值比较,自然能求出。
但往往二叉树的题,都会用到递归,本身是二叉树,那么子树必定为二叉树,如果找到规律??
我们可以这样想,递归一次,旧调用系统栈一次保存数据。既然要路径上的所有结点的和等于给定的值,就说明给定的值减去路径的和等于0。我们就不难想到,每次递归减去当前根结点的值,一直到叶子结点,如果最后的值等于叶子结点的值那不就正好可以求解此题。
我们要考虑特殊情况,如果二叉树只有一个结点,并恰巧那个结点的值等于给定的值呢??所以,每回减去当前根结点的值前,先判断是否相等,再减去。
如果到叶子结点不相等,那么就往上走,再往右边走。
有了上述思路,就不难写出如下代码
代码实现
class Solution {vector<vector<int>> result;vector<int> path;
public:void find(TreeNode* root,int expectnum){if(root == NULL)return ;path.push_back(root->val);if(!root->left&&!root->right&& expectnum == root->val)result.push_back(path);else{if(root->left)find(root->left,expectnum-root->val);if(root->right)find(root->right,expectnum-root->val);}path.pop_back();}vector<vector<int> > FindPath(TreeNode* root,int expectNumber) {find(root,expectNumber);return result;}
};
【剑指offer】_10二叉树和为某一路径值相关推荐
- 《LeetCode力扣练习》剑指 Offer 27. 二叉树的镜像 Java
<LeetCode力扣练习>剑指 Offer 27. 二叉树的镜像 Java 一.资源 题目: 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 例如输入: 4 / 2 7 / \ / ...
- 【LeetCode】剑指 Offer 34. 二叉树中和为某一值的路径
[LeetCode]剑指 Offer 34. 二叉树中和为某一值的路径 文章目录 [LeetCode]剑指 Offer 34. 二叉树中和为某一值的路径 package offer;import ja ...
- 【LeetCode】剑指 Offer 27. 二叉树的镜像
[LeetCode]剑指 Offer 27. 二叉树的镜像 文章目录 [LeetCode]剑指 Offer 27. 二叉树的镜像 一.递归法 二.辅助栈(或队列) 一.递归法 根据二叉树镜像的定义,考 ...
- 算法leetcode|剑指 Offer 27. 二叉树的镜像|226. 翻转二叉树(rust很强)
文章目录 剑指 Offer 27. 二叉树的镜像|226. 翻转二叉树: 样例 1: 限制: 分析 题解 rust go c++ java python 原题传送门:https://leetcode. ...
- JZ27 [剑指 Offer 27] 二叉树的镜像
二叉树的镜像 Category Difficulty Likes Dislikes lcof Easy (79.61%) 311 - 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 例如输入: ...
- 《剑指offer》二叉树镜像
剑指offer简单题,但是能一下写对也需要小心考虑细节. 题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 二叉树的镜像定义:源二叉树 8 / 6 10 / / 5 7 9 11 ...
- 【Java】 剑指offer(27) 二叉树的镜像
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 请完成一个函数,输入一个二叉树,该函数输出它的镜像. 思路 画图可 ...
- 剑指offer 27. 二叉树的镜像
声明:本系列博客是对何海涛<剑指offer>的关键点总结. 1.树的镜像 定义:树的根结点相同,但是左右两个子节点交换了位置 2.解题思路 1)前序遍历树的每一个结点: 2)如果遍历到的节 ...
- 剑指 Offer 34. 二叉树中和为某一值的路径【附完整可运行代码】
立志用最少的代码做最高效的表达 输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径.从树的根节点开始往下一直到叶节点所经过的节点形成一条路径. 示例: 给定如下二叉树,以及目标和 ...
最新文章
- python刷CSDN阅读量
- 获取dbgrid的行索引
- VTK:Utilities之ExtractFaces
- (二)Mysql 基础了解,修改字符集,配置文件
- TIMING_04 时序约束的一般步骤
- 信息学奥赛一本通(1136:密码翻译)
- Ubuntu命令行和图形界面选择设置
- Java:JSON解析工具-org.json
- c语言程序设计爱心图片,c语言爱心图片表白程序源代码
- android-倒计时工具类
- 系统内核溢出漏洞提权之Windows Exploit Suggester
- iphone分辨率终极指南(含iphone6/6+)
- 基于lamp搭建Discuz论坛
- 【ubuntu16.04 LTS】ping百度通,但浏览器打不开百度网页
- WordPress-微信机器人高级版
- Fiddler+Proxifier进行PC端微信小程序抓包
- Everything下载
- android带投屏播放器,手机投屏播放器软件下载-投屏播放器 安卓版v2.4.6-PC6安卓网...
- $.ajax()方法使用详解
- JavaWeb的学习(下)
热门文章
- MyEclipse - 查询使用的JDK版本
- idea创建git分支
- markdown-Macdown
- 如何写出安全的API接口(参数加密+超时处理+私钥验证+Https)- 续(附demo)
- PHP数据结构之三 线性表中的单链表的PHP实现
- fortran语法笔记
- hdu 4857 逃生 拓扑排序
- SharePoint 2010 Form Authentication (SQL) based on existing database
- 在jsp文件中通过超链接访问servlet_Eclipse中创建Servlet
- python3seek_Python seek()和tell()函数详解