头插法“ 1->2->3->NULL”举例
head->next=tail; 这步是把头取下来并指向tail
2.这是把tail放到head位置 ,并且把head放到phead的位置
tail=head;
head=phead;
3.防止phead越位
if(phead)
{
phead=phead->next;
}
当前循环还没结束并且phead已经在NULL的位置为了防止越位我们限制它不让它继续前进
//重命名
typedef struct ListNode Node;
struct ListNode* ReverseList(struct ListNode* head ) {
Node* tail=NULL;
//保留下一个节点位置
Node* phead=head->next;
while(head)
{
head->next=tail;
//将tail放到head的位置
tail=head;
head=phead;
if(phead)
{
phead=phead->next;
}
}
return tail;
}