问题描述
输入一个链表,反转链表后,输出新链表的表头。
思路
用3个指针去反转一个链表
pre 保存已经反转后链表的头节点
cur 指向待反正的节点
nex 保存没有反转链表的第二个节点
操作
nex = nex->next;
cur->next = pre;
pre = cur;
cur = nex;
具体实现
ListNode* ReverseList(ListNode* pHead) {
ListNode *pre = NULL;
ListNode *cur = pHead;
ListNode *nex = NULL;
while(cur !=NULL){
nex = nex->next;
cur->next = pre;
pre = cur;
cur = nex;
}
return pre;
}