Given a binary tree, return all root-to-leaf paths.

For example, given the following binary tree:

   1
/ \
2 3
\
5

All root-to-leaf paths are:

["1->2->5", "1->3"]
代码如下:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
//按照容易自己习惯的数据结构来存储路径,最后做一个转换
void findPath(TreeNode* t,vector<int>& temp, vector<vector<int> >& record)
{
temp.push_back(t->val);
if(t->left!=NULL) findPath(t->left, temp, record);
if(t->right!=NULL) findPath(t->right, temp, record);
//到达叶子节点,就记录路径
if(t->left==NULL && t->right==NULL)
{
record.push_back(temp);
temp.erase(temp.end()-1);
return ;
}
//中间节点返回
temp.erase(temp.end()-1);
return;
}
vector<string> binaryTreePaths(TreeNode* root) {
vector<vector<int>> record;
vector<string> srecord;
if(root==NULL) return srecord;
vector<int> temp;
//找到所有的路
findPath(root,temp,record);
//把所有的路按照题目要求存储
string stemp;
for(int i=0;i<record.size();i++)
{
stringstream ss;
for(int j=0;j<record[i].size();j++)
{
ss<<record[i][j]<<"->";
}
stemp.clear();
stemp=ss.str();
//去掉最后的"->"
stemp.pop_back();
stemp.pop_back();
srecord.push_back(stemp);
}
return srecord;
}
};
												

最新文章

  1. winform 记住密码功能
  2. 第二课 less的学习以及移动端需要注意的问题
  3. 理解RxJava:(二)Operator,Operator
  4. Java反射机制(Class类的使用)
  5. mac 环境下mysql 不能删除schema问题的解决办法
  6. winform datetimepacker 开始日期 结束日期 分类: WinForm 2014-07-15 19:14 124人阅读 评论(0) 收藏
  7. nginx 安装三方包重新编译
  8. JAVA基础3——常见关键字解读(2)
  9. Jenkins in OpenCASCADE
  10. 使用Vertx构建微服务
  11. 用beego开发服务端应用
  12. 【Flask】报错解决方法:AssertionError: View function mapping is overwriting an existing endpoint function: main.user
  13. S0.6 直方图均衡化
  14. JAVA005-基本数据类型变量的存储
  15. Spring lazy-init 原理分析
  16. 剑指offer——链表中倒数第k个结点
  17. python框架之Flask(6)-flask-sqlalchemy&amp;flask-script&amp;flask-migrate使用
  18. 一次完整的HTTP事务是怎样一个过程?(转)
  19. 报错:java.net.bindexception: address already in use: jvm_bind:8080
  20. LIS (DP)_代码

热门文章

  1. 今日前端框架Vue学习笔记
  2. PHP原生EXCEL导出带样式无插件无乱码实现
  3. 配置java环境遇到的问题及解决方案
  4. Oracle死锁处理实例
  5. 创建虚拟目录 http://localhost:1001/ 失败,错误: 无法创建网站
  6. 创建第一kubernetes应用以及基本操作(六)
  7. 云计算(1)-为什么要使用cloud
  8. BLOB和TEXT
  9. 如何的keil试试调试中,看逻辑分析仪Logic viwer
  10. Spring Cloud Eureka 注册中心高可用机制