leetcode-binary tree paths

本题要求将二叉树所有的路径输出,是一道简单题,深度优先遍历即可。
二叉树节点存储的是Int值,需要将其转化为字符串。

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
class Solution {
private:
std::vector<string> v;
public:
void (int val , std::string &tmp)
{

string pp;
if(val < 0)
{
tmp += "-";
val = -val;
}
while(val)
{
pp.insert(pp.begin(), '0'+val % 10);
val = val / 10;
}
tmp += pp + "->";
}

void Traver(TreeNode* root, std::string tmp)
{

if(root)
{

i2s(root->val,tmp);
if(root->left)
Traver(root->left,tmp);
if(root->right)
Traver(root->right,tmp);
if(!root->left && !root->right)
{
tmp.erase(tmp.begin()+tmp.size()-2,tmp.end());
v.push_back(tmp);
}
}
}

vector<string> binaryTreePaths(TreeNode* root)
{
std::string tmp;
Traver(root,tmp);
return v;
}
};