Given a binary tree, return all root-to-leaf paths.
For example, given the following binary tree:
1
/
2 3
5
All root-to-leaf paths are:
["1->2->5", "1->3"]
Solution1: dfs, recursion. use the dfs function.
1 class Solution { 2 public: 3 vector<string> binaryTreePaths(TreeNode* root) { 4 vector<string> res; 5 if (!root) return res; 6 dfs(res,root,to_string(root->val)); 7 return res; 8 } 9 10 void dfs(vector<string> res, TreeNode* root, string path){ 11 if (!root->left && !root->right){ 12 res.push_back(path); 13 return; 14 } 15 if (root->left) dfs(res,root->left,path+"->"+to_string(root->left->val)); 16 if (root->right) dfs(res, root->right, path+"->"+to_string(root->right->val)); 17 } 18 };