可以使用辅助的head来执行头插法,具体思路就是维护原链表的cursor顺序,随后将当前cursor头插到head->next,然后cursor按照原来链表的顺序继续移动,循环迭代,直到cursor为NULL,则原链表所有节点都已经插入到新的head链表中,由于是头插法,直接返回head->next即可。
class Solution {
public:
ListNode* ReverseList(ListNode* pHead) {
auto head = new ListNode(0);
auto cursor = pHead;
auto temp = pHead;
while(cursor!=NULL){
temp = temp->next;
cursor->next = head->next;
head->next = cursor;
cursor = temp;
}
return head->next;
}
}; 
京公网安备 11010502036488号