给定一个二叉树,返回所有从根节点到叶子节点的路径。
说明: 叶子节点是指没有子节点的节点。
示例:
输入:
1
/ \
2 3
\
5
输出: ["1->2->5", "1->3"]
解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/binary-tree-paths 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution {
public:
vector<string> binaryTreePaths(TreeNode* root) {
string path;
vector<string> ans;
walk(root, path, ans);
return ans;
}
void walk(TreeNode* root, string path, vector<string>& ans)
{
if(root == NULL)
return;
walk(root->left, path+to_string(root->val)+"->", ans);
walk(root->right, path+to_string(root->val)+"->", ans);
if(!root->left && !root->right)
{
path += to_string(root->val);
ans.push_back(path);
}
}
};