1 /**
2 * Definition for singly-linked list.
3 * struct ListNode {
4 * int val;
5 * struct ListNode *next;
6 * };
7 */
8
9
10 struct ListNode* reverseList(struct ListNode* head){
11 struct ListNode *p = (struct ListNode *)malloc(sizeof(struct ListNode));
12 p->next = NULL;
13 while(head)
14 {
15 struct ListNode *q=head;
16 head = head->next;
17 struct ListNode *s = (struct ListNode *)malloc(sizeof(struct ListNode));
18 s->val = q->val;
19 s->next = p->next;
20 p->next = s;
21 }
22
23 return p->next;
24 }