问题描述

Reverse a singly linked list.

问题分析

链表反转问题。从第二个节点开始,不断把next节点加到head前面。

代码

class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        ListNode* p = head;
        ListNode* q = 0;
        if(head==0) return 0;
        while(p->next) {
        	q = p->next;
			p->next = q->next;
			q->next = head; 
			head = q;
        }
        return head;
    }
};