我正在编写一个函数,该函数将遍历电影标题的链接列表并返回最接近字母表开头的函数。我似乎在某个地方犯了一个逻辑错误,但我似乎无法找到它。
string StringList::minimum()
{
StringNode *temp = new StringNode;
temp = head;
string first = temp->data;
while(temp->next != NULL)
{
if(first[0] > temp->data[0])
{
first = temp->data;
temp = temp->next;
}
}
else
{
temp = temp->next;
}
return first;
}
非常感谢任何见解。
答案 0 :(得分:0)
在这种情况下,StringNode *temp = new StringNode;
将创建必要的分配和内存泄漏。你只需要声明一个指针StringNode *temp = head;
从头开始按照以下步骤浏览链接:
string StringList::minimum()
{
string minimum;
StringNode *temp = head;
if (!temp) return minimum;
minimum = temp->data[0];
while(temp->next != NULL)
{
temp = temp->next;
if(temp && minimum < temp->data[0])
minimum = temp->data[0];
}
return minimum;
}