过去会遗忘,现在不会

反转链表

反转链表最常用的就是双指针法了

图解:

首先,创建两个指针,begin和end,一个begin为空,一个end指向链表开头1。

然后begin=end;end往后移动指向像一个节点,如下图

重复以上步骤,直到end为空。

代码如下

/**
 * 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* begin,*end;
begin=NULL;
end=head;

while(end!=NULL)
{
ListNode* temp=end->next;
end->next=begin;
begin=end;
end=temp;
}

return begin;
    }
};

 

posted on 2023-06-03 15:48  WhatAnyWay  阅读(55)  评论(0)    收藏  举报