【发布时间】:2013-07-13 18:28:43
【问题描述】:
我有一个在 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?
}
我认为这个问题的答案也将帮助我了解递归的核心概念
【问题讨论】:
标签: c++ algorithm recursion binary-search-tree