- 使用3个指针:
p
r
e
N
o
d
e
preNode
preNode、
c
u
r
N
o
d
e
curNode
curNode、
n
e
x
t
N
o
d
e
nextNode
nextNode。
-
c
u
r
N
o
d
e
curNode
curNode是当前正在反转的结点,将这个结点的
n
e
x
t
next
next指向
p
r
e
N
o
d
e
preNode
preNode。
- 每次依次后移这3个指针。
ListNode* ReverseList(ListNode* pHead) {
if(pHead == NULL) return NULL;
ListNode* preNode = NULL;
ListNode* curNode = pHead;
ListNode* nextNode = NULL;
while(curNode != NULL)
{
nextNode = curNode->next;
curNode->next = preNode;
preNode = curNode;
curNode = nextNode;
}
return preNode;
}