Binary Tree Paths
Desicription
Given a binary tree, return all root-to-leaf paths.
Note: A leaf is a node with no children.
Example:
1 2 3 4 5 6 7 8 9 10 11
| Input:
1 / \ 2 3 \ 5
Output: ["1->2->5", "1->3"]
Explanation: All root-to-leaf paths are: 1->2->5, 1->3
|
Solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
class Solution { private: vector<string> res{}; void search(TreeNode* root, string path) { if(root == nullptr) { return ; } path += path == "" ? to_string(root->val) : "->" + to_string(root->val); if(root->left == nullptr && root->right == nullptr) { res.push_back(path); return ; } if(root->left) { search(root->left, path); } if(root->right) { search(root->right, path); } } public: vector<string> binaryTreePaths(TreeNode* root) { search(root, ""); return res; } };
|