码迷,mamicode.com
首页 > 其他好文 > 详细

(leetcode)Reverse Linked List 脑子已经僵住

时间:2015-06-09 23:21:03      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:

Reverse a singly linked list.

参考http://www.2cto.com/kf/201110/106607.html

方法1:

讲每个节点的指针指向前面就可以。

/**
 * 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 *q = NULL;
        // if(!(head && head->next)) return NULL;
        // ListNode *p = head->next;
        // head->next = NULL;
        
        // while(p)
        // {
        //     q=p->next;
        //     p->next=head->next;
        //     head->next=p;
        //     p = q;
        // }
        // return head;
        
        if((head == NULL) || (head->next==NULL)) return head;
        ListNode *p = head;
        ListNode *q = p->next;
        ListNode *r = NULL;
        head->next = NULL;
        while(q)
        {
            r = q->next;
            q->next = p;
            p = q;
            q = r;
        }
        head = p;
        return head;
        
    }
};

  方法二:这个方法想了很久才发现题目中的意思head是第一个节点

/**
 * 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==NULL) || (head->next==NULL)) return head;
        ListNode *q = NULL;
        ListNode *p = head->next;//p位置不变
        
        while(p->next)
        {
            q=p->next;
            p->next = q->next;
            q->next = head->next;
            head->next = q;
        }
        p->next=head;            //相当于成环   
        head=p->next->next;       //新head变为原head的next   
        p->next->next=NULL;     //断掉环   
        return head;
      
        
    }
};

  

 太菜了!!!!!!

(leetcode)Reverse Linked List 脑子已经僵住

标签:

原文地址:http://www.cnblogs.com/chdxiaoming/p/4564662.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!