/**
  * Definition for singly-linked list.
  * struct ListNode {
  *     int val;
  *     ListNode *next;
  *     ListNode(int x) : val(x), next(NULL) {}
  * };
  */
 class Solution {
 public:
     ListNode* reverseList(ListNode* head) {
         ListNode *p = head;
         if(p==NULL || p->next == NULL ){
             return p;
         }
         ListNode *q,*r;
         q= p->next;
         p->next = NULL;
         while (q!=NULL){
             r=q->next;
             q->next=p;
             p=q;
             q=r;
         }
         return p;
         }
 };
 
输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL
 
执行用时 : 24 ms, 在Reverse Linked List的C++提交中击败了9.24% 的用户
内存消耗 : 8.9 MB, 在Reverse Linked List的C++提交中击败了0.86% 的用户










