如何从指针到该节点的指针获取单链表节点值?

How to get singly linked list node value from pointer to pointer of that node?

我想从单链表中删除节点。我有变量 'pp'(指向当前节点指针的指针)遍历整个列表,直到找到要删除的节点(在这种情况下,值为 'a' 的节点),但是当我试图到达当前节点的值给我一个错误('->value' 的左边必须指向 class/struct/union/generic 类型)请告诉我我的代码有什么问题

Node** pp = &head;
while(*pp->value != a){ \ error on this line
    pp = &(*pp->next);
}
*pp = *pp->next;

尝试使用括号,如下所示:

(*pp)->value

因为 operators precedence 导致您遇到的错误。运算符 -> 的优先级高于运算符 *,因此需要使用括号。

错误('->value' 的左侧必须指向 class/struct/union/generic 类型)强烈提示您这里发生了什么:您试图在非结构体中请求 value,您试图在地址 (pp) 中请求成员,而不是在结构中(其中 pp 指向,即 *pp)。

不要忘记在其余代码中使用括号,例如 (*pp)->next

PS: 不要忘记free要删除的节点,你更新了next指针之后!

在 *pp 周围使用括号,由于运算符优先级需要

Node** pp = &head;
while((*pp)->value != a){ \ error on this line
    pp = &((*pp)->next);
}
*pp = (*pp)->next;