【发布时间】:2018-09-24 06:00:27
【问题描述】:
我有一个任务,我必须在链表末尾(尾部之前的那个)找到节点并将其返回并删除。如果成功删除,我返回true,所以它基本上是一个bool函数。
到目前为止,我不知道我做错了什么。
我无法返回值,因为我不知道如何同时返回 true 和 bool 函数的值。
这里是代码;
bool List::getBack(int & key)
{
Node *temp = new Node;
Node *prev = new Node;
temp = head;
if (tail==head)
{
return false;
}
else {
while (temp->next != nullptr)
{
prev = temp;
temp = temp->next;
}
tail = prev;
prev->next = nullptr;
delete temp;
return true;
}
}
我不希望任何人解决我的问题,我只需要帮助理解它。
总的来说,这就是使用这个函数应该发生的事情:
while (MyList.getBack(i))
cout << i << " ";
cout << endl << endl;
【问题讨论】:
-
您还记得使用
=赋值和使用==比较相等之间的区别吗? -
啊,是的,你说得对!在 if 语句中,我忘记了另一个等号。谢谢!
-
嘿,不,我很确定这不是问题所在。我会打出一个更清楚的问题,谢谢你提醒我:)
-
key是干什么用的?你传入一个非const引用,表明你想更新它,但你从来没有给它分配任何东西。这不是你想要的“其他返回值”吗? -
是的,那是真的,这就是为什么我对在其 bool 函数时如何准确返回键的值感到有点困惑。
标签: c++ c++11 linked-list