解题

非常简单粗暴,数据结构有教,这里就画个图解释一下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
struct ListNode* reverseList(struct ListNode* head) {
if(head==NULL){
return 0;
}
struct ListNode* pre=NULL;
struct ListNode* curr=head;
struct ListNode* temp=NULL;
while(curr!=NULL){
temp=curr->next;
curr->next=pre;
pre=curr;
curr=temp;
}
return pre;
}

关键就在于将c指向p,然后三者后移