leetcode 206. Reverse Linked List
Reverse a singly linked list.
无头节点
AC:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* reverseList(struct ListNode* head) {
if(head==NULL||head->next==NULL)
{
return head;
}
struct ListNode* p=head;
struct ListNode* q=head;
while(q->next!=NULL)
{
q=q->next;
}
while(p!=q)
{
head=head->next;
p->next=q->next;
q->next=p;
p=head;
}
return head;
}
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* reverseList(struct ListNode* head) {
if(head==NULL||head->next==NULL)
{
return head;
}
struct ListNode* p=head;
struct ListNode* q=head;
while(q->next!=NULL)
{
q=q->next;
}
while(p!=q)
{
head=head->next;
p->next=q->next;
q->next=p;
p=head;
}
return head;
}