之前遇到过,但是一直没有拿出来说一说;
C++并没有所谓的split函数,因此最多的方法是借助istringstream来进行分割;
1.空格分割:
对于空格分割的string,可以直接采用以下:
直接用>>
输入即可;
TreeNode* fun(istringstream& ss){
string s;
ss>>s;
if(s=="null")
return nullptr;
TreeNode* root=new TreeNode(stoi(s));
root->left=fun(ss);
root->right=fun(ss);
return root;
}
2.特殊字符分割:
这里getline可以采用while进行循环读取;
第三个参数是分割符;
TreeNode* fun(istringstream& ss){
string s;
getline(ss,s,',');
if(s=="null")
return nullptr;
TreeNode* root=new TreeNode(stoi(s));
root->left=fun(ss);
root->right=fun(ss);
return root;
}