206.反转链表

206.反转链表

力扣题目链接(opens new window)

题意:反转一个单链表。

示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL

双双指针法:

创建三个节点 pre(反转时的第一个节点)、cur(当前指向需要反转的节点)、tem(cur反转操作前,需要暂存cur的下一个节点)

复制代码
   ListNode* reverseList(ListNode* head) {
       ListNode* pre=nullptr;
       ListNode* tem;
       ListNode* cur = head;
       while(cur!=nullptr){
           tem = cur->next;//暂存
           cur->next = pre;//反转
           pre = cur;//前一个节点移动至下一个
           cur = tem;//前一个节点移动至下一个
       }
       return cur;
   }
相关推荐
武子康1 小时前
H3-World 为何在加载 LoRA 前,先检查导入的代码?
人工智能·深度学习·算法
秋天的怀念_David2 小时前
算法一千零一夜 · 第二十八夜 注册
java·程序人生·算法
NEFU_Jyj4 小时前
贝尔数(组合数学)
算法
希和20275 小时前
C语言程序设计题|有序数组插入数字冒泡排序
c语言·数据结构·算法
Pniubi5 小时前
力扣73 矩阵置零
算法·leetcode·矩阵
布莱克60515 小时前
C++ 中 map 的 insert 与 emplace:key 已存在时会覆盖吗?
开发语言·数据结构·c++·算法·map
D e re k ZH18 小时前
C++ 系统学习手记:从语法细节到工程实践
开发语言·数据结构·c++·算法
石小石Orz19 小时前
AI 正在蚕食我们的编码能力
前端·后端·算法
民乐团扒谱机20 小时前
【微实验】NSGA-II(非支配排序遗传算法)——解决多目标优化问题的“自然选择模拟器”
linux·人工智能·算法