JZ-24题解 | #反转链表#
反转链表
http://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca
题目描述
给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。
题解
代码
struct ListNode {
int val;
struct ListNode* next;
ListNode(int x) :
val(x), next(NULL) {
}
};
ListNode* ReverseList(ListNode* pHead) {
ListNode* pre = NULL;
ListNode* cur = pHead;
ListNode* temp = NULL;
while (cur)
{
temp = cur->next;//保存cur下一个节点
cur->next = pre;//反转链表指向
pre = cur;//pre指针向下移动
cur = temp;//cur指针向下移动
}
return pre;//当cur指针指向NULL时,反转链表完成
}