206.反转链表

原题链接

题解

利用双指针算法,直接让后面一个指向前面一个

代码如下

/**
 * 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 = NULL;
        ListNode* q = head;
        while(q != NULL){
            ListNode* r = q->next;
            q->next = p;
            p = q, q = r;
        }
        return p;
    }
};
posted @ 2020-07-18 17:38  Lngstart  阅读(82)  评论(0编辑  收藏  举报