Lintcode 35.翻转链表

来源:互联网 发布:excel找两列不同的数据 编辑:程序博客网 时间:2024/06/07 06:47
样例

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

挑战

在原地一次翻转完成

/** * Definition of ListNode *  * class ListNode { * public: *     int val; *     ListNode *next; *  *     ListNode(int val) { *         this->val = val; *         this->next = NULL; *     } * } */class Solution {public:    /*     * @param head: n     * @return: The new head of reversed linked list.     */    ListNode * reverse(ListNode * head) {       if (head == NULL)return NULL;ListNode* t = NULL;ListNode* p = head;ListNode* q = head->next;while (q != NULL){p->next = t;t = p;p = q;q = p->next;}p->next = t;return p;    }};
想法:以前一直刷pat,第一次接触leetcode,lintcode这种平台,还没弄太明白,不过链表逆置算比较基本,三个指针完全可以应付,主要是找到循环结束点。

原创粉丝点击