我有一个简单的函数来递归地构建一个字符串树。该函数被赋予一个字符串“***”,结果树应如下所示:
***
/ | \
X** *X* **X
/ \ / \ / \
XX* X*X XX* *XX X*X *XX
/ \ / \ / \
XXX XXX XXX XXX XXX XXX
问题是我的功能只是创建树的最左侧(X **,XX *,XXX)
这是功能:
//Takes in the string "***"
void buildTree(string tree){
if (tree == "XXX") return;
else{
string newTree;
for (int i=0; i<tree.size(); i++){
if(tree[i] == '*'){
newTree = tree;
newTree[i] = 'X';
cout << newTree << endl;
return buildTree(newTree);
}
}
}
}
答案 0 :(得分:1)
从“return buildTree(newTree);”中删除“return”你应该好好去。