struct node
{
int data;
struct node *next;
};
typedef struct node ListNode;
typedef ListNode *LinkNode;
LinkNode reverse(LinkNode head)
{
LinkNode p1,p2,p3;
//如果没有结点或只有头结点
if(head == NULL || head->next == NULL)
return head;
p1 = head;
p2 = head->next;
head->next = NULL;//反转后head成为最后一个结点
//链表中有大于一个结点
while(p1->next != NULL)
{
p3 = p2->next;
p2->next = p1;
p1 = p2;
p2 = p3;
}
head = p1;
return head;
}
面试题目之单链表的反转
最新推荐文章于 2021-07-23 09:47:46 发布