原书代码:
p = rearA->next;
rearA->next = rearB->next->next;
rearB->next = p;
free(p);
到最后free(p)之后,rearB->next指向的内存区域也被free掉了,那是不是rearB->next变成了野指针?这就不对了。还是我哪里想错了?
原书代码:
p = rearA->next;
rearA->next = rearB->next->next;
rearB->next = p;
free(p);
到最后free(p)之后,rearB->next指向的内存区域也被free掉了,那是不是rearB->next变成了野指针?这就不对了。还是我哪里想错了?
我也觉得他这里写错了,应该是要保留链表A的头结点,释放链表B的头结点,代码应该改成这样:
BHead = rearB->next;
rearB->next = rearA->next;
rearA->next = BHead->next;
free(BHead);