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