下面是修改后的代码:
void Path(BTNode* bt, char x, char path[], int pathlen)
{
if(bt != NULL)
{
path[pathlen] = bt->data;
if(bt->data == x)
{
for(int i = 0; i <= pathlen; i++)
{
cout << path[i] << " ";
}
cout << bt->data;
}
Path(bt->lchild, x, path, pathlen + 1);
Path(bt->rchild, x, path, pathlen + 1);
}
}
在原有代码的基础上,将路径记录操作提前到递归调用之前。这样可以确保在访问到目标节点时,路径数组已经包含了完整的路径信息。
内容由零声教学AI助手提供,问题来源于学员提问