因此,我非常了解遍历链表以及获取列表中的下一个节点。现在我试图走向另一个方向,但我很快意识到它并不像看起来那么容易。与可以向前和向后迭代的数组不同。我似乎被难住了。获取链接列表中给定节点地址的节点的地址
因此,如果我有1 - > 2 - > 3 - > 4 - > NULL的列表我将如何获得节点2给定节点3的位置的地址?
我开始搞乱下面的代码,它返回到节点3的所有项目。我只是不明白我如何得到前一个节点?顺便说一句searchList()
返回一个节点的地址,如果你给它的节点 - >数据值。使用上面的列表searchList(3)
将返回具有3作为其数据成员的节点的地址。
struct node {
int data;
node* next;
};
void llclass::getPrevious() {
node *stop = searchList(nodeItem),
*start = head;
while (start != stop) {
cout << start->data << endl;
start = start->next;
}
}
非常感谢你这是我正在努力完成的。有一件事你为什么最后返回NULL? – MrPilot
如果您要查找的项目不在列表中,那么您没有有效的前一个节点返回给调用者。为了通知这个场景的调用代码,我选择返回NULL。 – DigitalEye