我有一个基础函数,在C++中执行中序遍历:
void inorder(Node *root)
{
if(root != NULL)
{
inorder(root->left);
cout<<root->data<<endl;
inorder(root->right);
}
}
然而,我希望将遍历结果返回为一个列表。但关键问题是我们如何确定递归函数何时结束以便返回列表。以下是我目前完成的代码:
vector<int> inorder(Node *root, vector<int> listToAdd)
{
if(root != NULL)
{
inorder(root->left, listToAdd);
listToAdd.push_back(root->data);
inorder(root->right, listToAdd);
//return here?
}
// return here?
}
我认为这个问题的答案也会帮助我理解递归的核心概念。