导航

LeetCode Reverse Linked List

Posted on 2016-03-31 01:05  CSU蛋李  阅读(104)  评论(0编辑  收藏  举报

Reverse a singly linked list.

题目:翻转一个单向链表

很简单,不过要注意设置两个辅助指针变量

 

/**
 * 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) {
       if (!head || !head->next)return head;
        ListNode *mid=head->next,*last=mid->next;
        head->next = NULL;
        for (;last;)
        {
            mid->next = head;
            head = mid;
            mid = last;
            last = last->next;
        }
        mid->next = head;
        return mid;
        
    }
};