牛客网真题:单链表的逆序
C++的单链表逆序:
创建3个指针,分别指向当前头节点位置,空空。
先将一个指针指向头节点的下一个节点,下一个节点为当前节点的下一个节点,当前节点的下一个节点为前一个节点,前一个结点为当前节点,当前节点为下一个节点。
struct ListNode* ReverseList(struct ListNode* pHead ) {
// write code here
struct ListNode *pre = NULL;
struct ListNode *cur = pHead;
struct ListNode *nex = NULL;
while (cur) {
nex = cur->next;
cur->next = pre;
pre = cur;
cur = nex;
}
return pre;
}