257. Binary Tree Paths
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"]
解题思路:
深度优先遍历,如果是叶节点则加入到结果数组里面,否则继续遍历
c++代码
class Solution {
public:
string intToString(int i){
string s;
stringstream ss;
ss<<i;
ss>>s;
return s;
}
void my_binaryTreePaths(vector<string>& ans,TreeNode* root,string s) {
if(root==NULL){
return ;
}
if(root->left==NULL&&root->right==NULL){
s+=intToString(root->val);
ans.push_back(s);
return;
}
s+=intToString(root->val)+"->";
if(root->left){
my_binaryTreePaths(ans,root->left,s);
}
if(root->right){
my_binaryTreePaths(ans,root->right,s);
}
}
vector<string> binaryTreePaths(TreeNode* root) {
vector<string> ans;
my_binaryTreePaths(ans,root,"");
return ans;
}
};