思路
反转指向,头变尾,保存下一个地址,然后一直迭代,同时更新头。
代码
struct ListNode* reverseList(struct ListNode* head){ if(head==NULL)//0ge return NULL; if(head->next==NULL)//1ge return head; //多个节点 //思路:反转指向 struct ListNode* cur=head; struct ListNode* next=head->next;//保存下一个节点 head->next=NULL;//头变尾 while(next!=NULL) { //往后走 cur=next; next=next->next; //反转指向 cur->next=head; //每次更新头 head=cur; } return head; }