【发布时间】:2016-07-30 14:30:20
【问题描述】:
在双向链表的删除节点函数中,谁能解释一下 (pointer->next)->data != data in while 循环如何工作?
void delete(node *pointer, int data) {
while (pointer->next!=NULL && (pointer->next)->data != data) {
pointer = pointer -> next;
}
if (pointer->next == NULL) {
printf("Element %d is not present in the list\n", data);
return;
}
node *temp;
temp = pointer->next;
pointer->next = temp->next;
temp->prev = pointer;
free(temp);
return;
}
【问题讨论】:
-
什么是
pointer->next?它是列表中的下一个节点吗?然后再想一想……那么pointer->next->data会是什么?将pointer->next->data与this->data进行比较的原因可能是什么(我假设)? -
这是下一个节点中的数据得到了它@JoachimPileborg
-
另外,你确定你是在C++而不是C?没有特定于 C++ 的代码,而是使用
delete作为 C++ 中不允许的函数名称,因为delete是 C++ 中的 关键字。请适当标记您的问题。 -
我已经写了代码@mik1904
-
阅读一本关于 C++ 的书。与 *.com 上的 500 个字符的评论相比,它将对指针的工作原理进行更详细和更详细的解释
标签: c