206链表-反转链表
Posted 孤注一掷 、
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了206链表-反转链表相关的知识,希望对你有一定的参考价值。
题目
思路
双指针法
不用定义一个新的链表,只需改变链表中的next指向
定义两个指针
cur指针:指向第一个结点
pre指针:开始是null,之后为cur的前一个结点
用temp指针暂存cur的下一个结点
代码:
/**
* Definition for singly-linked list.
* struct ListNode
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr)
* ListNode(int x) : val(x), next(nullptr)
* ListNode(int x, ListNode *next) : val(x), next(next)
* ;
*/
class Solution
public:
ListNode* reverseList(ListNode* head)
ListNode* temp;
ListNode* cur = head;
ListNode* pre = NULL;
while(cur)
//保存cur的下一个结点
temp = cur->next;
//翻转操作
cur->next = pre;
//更新pre和cur
pre = cur;
cur = temp;
return pre;
;
以上是关于206链表-反转链表的主要内容,如果未能解决你的问题,请参考以下文章