单链表反转

1.代码示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution{
public:
ListNode* reverseList(ListNode* head){
ListNode* pre = NULL;
ListNode* next = NULL;
while(head != NULL)
{
next = head->next;
head->next = pre;
pre = head;
head = next;
}
return pre;
}

2.详解

1.存next
2.head的next指向pre
3.pre指向head作为下一个节点的前节点
4.移动head到下一个节点