当前位置: 首页 > news >正文

【数据结构OJ题】反转链表

原题链接:https://leetcode.cn/problems/reverse-linked-list/description/

目录

1. 题目描述

2. 思路分析

3. 代码实现


1. 题目描述

2. 思路分析

方法一三指针翻转法

使用三个结构体指针n1n2n3,原地修改结点指向。

就是让n1先指向空指针NULLn2指向头结点n3指向头结点下一个结点

用n2进行遍历。然后让n1指向n2n2指向n3n3指向n3的下一个结点。如此循环遍历直到n2指向空指针NULL时停止

最后返回n1即可

 

这里为什么要用三个指针呢?

因为如果只用两个指针,那么我们让n1指向n2后,链表的连接就断了,找不到原链表n2的下一个结点了。

同时,我们需要注意一些临界条件特殊情况

比如链表是空的,我们就让最后返回空即可

一般情况至少有一个结点存在,所以我们得在n2不为空的情况下(即if(n2)),让n3指向n2的下一个结点。(n3=n2->next

遍历过程中,n3要指向下一个结点那么n3就不能是空指针(即if(n3) n3=n3->next

方法二头插法

对每一个结点都进行头插

3. 代码实现

方法一:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/struct ListNode* reverseList(struct ListNode* head){struct ListNode *n1,*n2,*n3;n1=NULL;n2=head;if(n2)n3=n2->next;while(n2){n2->next=n1;n1=n2;n2=n3;if(n3)n3=n3->next;}return n1;
}

 

方法二:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/struct ListNode* reverseList(struct ListNode* head){struct ListNode *cur=head;struct ListNode *newhead=NULL;while(cur){struct ListNode *next=cur->next;//头插cur->next=newhead;newhead=cur;cur=next;}return newhead;
}

 

http://www.lryc.cn/news/125058.html

相关文章:

  • Java8 Stream 之groupingBy 分组讲解
  • 优哲SSD大文件写性能测试
  • Python基础教程: json序列化详细用法介绍
  • 一张图看懂 USDT三种类型地址 Omni、ERC20、TRC20的区别
  • SegFormer之模型训练
  • Azure资源命名和标记决策指南
  • 【在一个升序数组中插入一个数仍升序输出】
  • 图像去雨、去雪、去雾论文学习记录
  • YARN框架和其工作原理流程介绍
  • 多维时序 | MATLAB实现ZOA-CNN-BiGRU-Attention多变量时间序列预测
  • centos上下载redis
  • 黑马项目一阶段面试58题 Web14题(二)
  • 软考高项-思维导图34-36(计算机高级系统项目管理师)
  • C++的stack和queue+优先队列
  • Ubuntu 18.04.6 Android Studio Giraffe adb logcat 无法使用
  • Python采集天气数据,做可视化分析【附源码】
  • 优维低代码实践:自定义模板
  • 电商3D产品渲染简明教程
  • 探索未来:元宇宙与Web3的无限可能
  • GraphQL(六)登录态校验Directive
  • 强大的AI语言模型
  • 成集云 | 鼎捷ERP采购单同步钉钉 | 解决方案
  • 【Kubernetes】Kubernetes的PV和PVC的用法
  • 【Redis】Redis三种集群模式-主从、哨兵、集群各自架构的优点和缺点对比
  • Python爬虫:如何使用Python爬取网站数据
  • 剑指offer专题2:队列和栈
  • pytorch入门-神经网络
  • kafka使用心得(二)
  • (二)掌握最基本的Linux服务器用法——Linux下简单的C/C++ 程序、项目编译
  • 应急响应-钓鱼邮件的处理思路溯源及其反制