
1、找中间结点方法:定义两个指针pcur、ppre,开始时同时指向L->next,之后向后遍历,让pcur每走两步,ppre走一步,当pcur为空时,结束循环,此时ppre指向中间结点

2、L2原地逆置方法:定义三个指针r、s、t,使它们分别指向链表开始的三个结点,先让s->next=r,则a2指向a1,之后r、s、t依次后移,依次完成a3指向a2,a4指向a3,再后移发现t为空,此时结束循环,但最后的a5还没指向,所以在循环外要再执行依次s->next=r。
最后需要让L2->next->next=NULL(此时L2->next->next拿到的是a1),因为原有链表的头结点变成最后一个结点,需要让最后一个结点的next为NULL,再让L2->next=s,使s成为逆置后的链表的第一个结点。

最低0.47元/天 解锁文章
855

被折叠的 条评论
为什么被折叠?



