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

力扣每日一题92:反转链表||

题目描述:

给你单链表的头指针 head 和两个整数 left 和 right ,其中 left <= right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 。

示例 1:

输入:head = [1,2,3,4,5], left = 2, right = 4
输出:[1,4,3,2,5]

示例 2:

输入:head = [5], left = 1, right = 1
输出:[5]

提示:

  • 链表中节点数目为 n
  • 1 <= n <= 500
  • -500 <= Node.val <= 500
  • 1 <= left <= right <= n

进阶: 你可以使用一趟扫描完成反转吗?

通过次数

445.9K

提交次数

799K

通过率

55.8%

思路和题解:

遍历链表,p指向正在遍历的节点,cur指向前一节点,并用一个i记录遍历节点的个数,当i在[left,right]之中时,cur停止后移,用tail指向p,表示第一个翻转的节点,随后用前插法,使p节点插入cur的后面直到i=right+1;随后tail指向p表示反转部分与剩余部分连接。

代码:

/*** 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* reverseBetween(ListNode* head, int left, int right) {ListNode* cur,*Head;cur=Head=new ListNode;Head->next=head;ListNode *p=head;int i=1;while(p&&i<left){p=p->next;cur=cur->next;i++;}cur->next=NULL;ListNode *tail=p;//记住头插的第一个//开始头插while(p&&i<=right){ListNode *t=p->next;p->next=cur->next;cur->next=p;p=t;i++;}//(right,end)连上tail->next=p;return Head->next;}
};

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

相关文章:

  • Vue+OpenLayers从入门到实战进阶案例汇总目录,兼容OpenLayers7和OpenLayers8
  • C#中使用LINQtoSQL管理SQL数据库之添加、修改和删除
  • 飞致云及其旗下1Panel项目进入2023年第三季度最具成长性开源初创榜单
  • Maven实战-私服搭建详细教程
  • uniapp-自定义表格,右边操作栏固定
  • 基于Electron27+React18+ArcoDesign客户端后台管理EXE
  • QT5交叉编译保姆级教程(arm64、mips64)
  • python计算图片的RGB值,可以作为颜色的判断条件
  • oracle 日期
  • JVM堆内存解析
  • C#Onnx模型信息查看工具
  • RK3588 ubuntu系统安装opencv
  • 常用的vue UI组件库
  • 防范欺诈GPT
  • 【Java】多线程案例(单例模式,阻塞队列,定时器,线程池)
  • STM32:使用蓝牙模块
  • Blazor 虚拟滚动/瀑布流加载Table数据
  • 数字化浪潮下,AI数字人融入多元化应用场景
  • JVM虚拟机:JVM的垃圾回收清除算法(GC)有哪些
  • 我应该删除低质量页面以提高Google排名吗?
  • 【实战Flask API项目指南】之六 数据库集成 SQLAlchemy
  • MFC网络通信-Udp服务端
  • 最简单且有效的msvcp140.dll丢失的解决方法,有效的解决msvcp140.dll丢失
  • HBase理论与实践-基操与实践
  • 内存管理设计精要
  • Java——StringBuffer与StringBuilder的区别
  • 基于深度学习的菠萝与果叶视觉识别及切断机构设计
  • springboot整合七牛云oss操作文件
  • 跨国传输的常见问题与对应解决方案
  • Git(七).git 文件夹瘦身,GitLab 永久删除文件