#include<sstream>
class Solution {
public:
/**
* @param root the root of the binary tree
* @return all root-to-leaf paths
*/
vector<string> a;
vector<int> a1[200];
vector<int> ::iterator b1;
int i;
void look(TreeNode * root)
{
if(root==NULL)
return ;
a1[i].push_back(root->val);
if(root->left==NULL&&root->right==NULL)
{
adda(i);
}
look(root->left);
look(root->right);
a1[i].pop_back();
}
string int2str(int n)
{
string aaa="";
stringstream ss;
string str;
ss<<n;
ss>>str;
aaa+=str;
return aaa;
}
void adda(int j)
{
string s="";
int i1=0;
for(b1=a1[j].begin();b1!=a1[j].end();b1++)
{
string s1;
s1=int2str(*b1);
if(i1!=0)
{s+="->"; }
s+=s1;
i1=11;
}
a.push_back(s);
}
vector<string> binaryTreePaths(TreeNode* root)
{
i=1;
a.clear();
look(root);
return a;
// Write your code here
}
};
二叉树所有 路径
dfs 记录路径 遇到 两个null 进入 数组
转化string 要用sstream
stringstream ss;
string str;
ss<<n;
ss>>str;
stringstream 可以吃掉所有的数据
吐出来相同的数据。
wrong了好多次。