题目描述
方法一
三指针实现
定义三个指针,分别为pA,pB,pTemp,pA开始指向空,pB指向链表的头节点,pTemp用来记录当前节点的下一个节点
首先使用pTemp记录当前节点(刚开始为头节点)的下一个节点,然后使当前节点pB指向pA,并且pA pB同时迭代,向前移动,直到pB指向
NULL,返回pA,即为反转后的头节点。
代码
struct ListNode* reverseList(struct ListNode* head)
{
struct ListNode *pA=NULL;
struct ListNode *pB=head;
struct ListNode *pTemp=NULL;
while(pB!=NULL)
{
pTemp=pB->next;
pB->next=pA;
pA=pB;
pB=pTemp;
}
return pA;
}