反转一个单链表
思路:双指针。
定义两个指针cur 和 pre,pre是反转后的前,cur是反转后的后,每次让pre的next指向cur,然后让pre和cur都往后移一位,最后当pre为空时结束。
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* reverseList(struct ListNode* head){
struct ListNode *cur=NULL, *pre=head;
while(pre){
struct ListNode*t=pre->next;
pre->next=cur;
cur=pre;
pre=t;
}
return cur;
}