257 二叉树的所有路径
题目:给定一个二叉树,返回所有从根节点到叶子节点的路径。
说明: 叶子节点是指没有子节点的节点。
示例:
输入:
1
/
2 3
5
输出: [“1->2->5”, “1->3”]
解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3
class Solution {
public:
void construct_path(TreeNode* root, string path, vector<string>& paths)
{
if(root != NULL)
{
path += to_string(root->val);
//如果当前结点的左右结点都为空,说明是叶子结点,将当前路径添加到保存结果的paths中
if(root->left == NULL && root->right == NULL)
{
paths.push_back(path);
}
else
{
//当前结点不是叶子结点,则递归继续遍历
path += "->";
construct_path(root->left, path, paths);
construct_path(root->right, path, paths);
}
}
}
vector<string> binaryTreePaths(TreeNode* root) {
vector<string> paths;
construct_path(root, "", paths);
return paths;
}
};