206. reverse linked list

Reverse a singly linked list.

题目分析:

用stack的思想进行反转,依次push,最后栈顶元素为list的头结点。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Solution {
public:
ListNode* (ListNode* head) {
if (head == NULL)
return NULL;

ListNode *s = NULL;
ListNode *p = head;
while (p != NULL)
{
ListNode *q = p->next;
p->next = s;
s = p;
p = q;
}
return s;
}
};