C语言单向链表问题!求大伙儿围观

p=q->next和p->next=q->next
这两个的区别? 实在是头大呢,,

img

在这个单向链表中:
a->next = b
b->next = c
c->next = d
d->next = e

当q = a时,q->next = a->next,所以q->next = b;所以:

  1. 如果p=q->next,那么p = b;
  2. 如果p->next=q->next, 那么 p->next = b,因为q->next = b,所以 p = q;

综上所所述:单向链表中 p=q->next 说明p是q的下一个元素,p->next=q->next说明p、q是同一个元素

你要记住next表示下一个,很重要
p = q->next,就是p指针指向q的下一个节点
p->next = q->next,就是p的下一个节点就是q的下一个节点
一般p = q->next应用场景比较多,因为链表循环基本这么用,
p->next = q->next主要用在链表排序、删除之类的处理当中,特别是删除,当删除q节点时,会将前一个节点的next指向删除节点的next,保持链表的连接

假设q->next=m;
那么p=q->next =====> p=m;
而p->next=q->next =====>p->next=m;
img