LintCode 35: Reverse Linked List

LintCode 35: Reverse Linked List

题目描述

翻转一个链表。

样例

给出一个链表1->2->3->null,这个翻转后的链表为3->2->1->null

Mon Mar 6 2017

思路

这道题的方法就很多了,我这里第一想到的就是用三个指针来实现,可能我以前这么实现过吧。

不过这个方法并不是最优的方法,还可以用两个指针,或者递归实现,这些坑以后再补吧。

代码

// 反转链表
class Solution {
public:
    /**
     * @param head: The first node of linked list.
     * @return: The new head of reversed linked list.
     */
    ListNode *reverse(ListNode *head) {
        ListNode* ans;
        if (head == NULL || head->next == NULL) return head;
        else if (head->next->next == NULL)
        {
            head->next->next = head;
            ans = head->next;
            head->next = NULL;
            return ans;
        }
        ListNode *p1 = head, *p2, *p3;
        while(1)
        {
            p2 = p1->next;
            p1 = 
        }
    }
    ListNode *reverse(ListNode *head) {
        ListNode* ans;
        if (head == NULL || head->next == NULL) return head;
        else if (head->next->next == NULL)
        {
            head->next->next = head;
            ans = head->next;
            head->next = NULL;
            return ans;
        }
        ListNode* p1 = head, *p2 = NULL, *p3 = NULL;
        while(1)
        {
            if (p1 != NULL && p1->next != NULL && p1->next->next != NULL)
            {
                p2 = p1->next;
                p1->next = p3;
                p3 = p2->next;
                p2->next = p1;
                p1 = p3->next;
                p3->next = p2;
                continue;
            }
            else if (p1 != NULL && p1->next != NULL && p1->next->next == NULL)
            {
                ans = p1->next;
                ans->next = p1;
                p1->next = p3;
            }
            else if (p1 != NULL && p1->next == NULL)
            {
                ans = p1;
                ans->next = p3;
            }
            else
            {
                ans = p3;
            }
            break;
        }
        head->next = NULL;
        return ans;
    }
};
posted @ 2017-03-06 15:14  GenkunAbe  阅读(141)  评论(0编辑  收藏  举报