最初:p1->p2->p3
逆置过程:1. p1<-p2 p3 首先让p2的next指向p1;
2. ......<-p1 p2 再由p1指向p2,p2指向p3;
3. 然后重复p2的next指向p1, p1指向p2,p2指向p3.
代码如下:
node *reverse(node *head)
{
node *p1, *p2, *p3;
if(head==NULL || head->next == NULL)
return head;
p1 = head, p2 = p1->next;
while(p2)
{
p3 = p2->next;
p2->next = p1;
p1 = p2;
p2 = p3;
}
head->next = NULL;
head = p1;
return head;
}
3881

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



