石家庄网站建设推广公司/前端培训费用大概多少
从头到尾遍历原链表,每遍历一个结点,将其摘下放在新链表的最前端。注意链表为空和只有一个结点的情况。时间复杂度为O(n)。参考代码如下:
#include <cstdio>//链表反转
ListNode *list_invert(ListNode *phead)
{if(phead == NULL)return NULL;ListNode *ptemp1 = phead->next;//你先走ListNode *ptemp2 = phead;//我殿后 ListNode *newHead = phead;ptemp2->next = NULL;while(ptemp1 != NULL){ptemp2 = ptemp1;ptemp1= ptemp1->next; ptemp2->next = newHead;newHead = ptemp2;}return newHead;
}