给定一个二叉树,返回所有从根节点到叶子节点的路径。
说明: 叶子节点是指没有子节点的节点。
示例:
递归遍历,一个to_string(int )函数想了 好长时间,后来 发现 还是用string类自带的吧。
class Solution {
public:
vector<vector<int>> res;
vector<int> temp;
void Search_Path(TreeNode* root)
{
if (root == NULL)
return;
else
{
temp.push_back(root->val);
if (!root->left && !root->right)//到达叶子节点
{
res.push_back(temp);
}
Search_Path(root->left);
Search_Path(root->right);
temp.pop_back();
}
}
vector<string> binaryTreePaths(TreeNode* root)
{
vector<string>result;
if (root == NULL)
return result;
Search_Path(root);
for (int i = 0; i < res.size(); i++)
{
string s = "";
for (int j = 0; j<int(res[i].size() - 1); j++)
{
s =s+ to_string(res[i][j])+"->";
}
s += to_string(res[i][res[i].size() - 1]);
result.push_back(s);
}
return result;
}
};