算法创作|反转链表问题解决方法

问题描述给你单链表的头指针 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]解决方案首先创建一个空节点指向head,两个指针同时遍历,并用tmp记录当前节点的下一个节点用两个指针遍历整个链表,首先找到left的位置,当当前节点小于target时继续让当前节点指向下一个节点,直到找到left的位置,找到left的位置时便可使用头插法将left后面的元素直到right插入到left前面以示例1为例子:1.初始状态

2.第一轮变换

3.第三轮变换

代码清单p1=ListNode(0)#创建空节点x=p1p1.next=headp=head#定义当前节点i=1#用于判断与left的关系while i <left:#当没有找到left时,继续指向下一个节点p1=p1.nextp=p.nexti=i+1while i < right:#找到left时用头插法进行插入tmp=p.next#记录当前节点的下一个节点p.next=tmp.nexttmp.next=p1.nextp1.next=tmpi=i+1print( x.next)结语本篇主要解决了链表反转的问题,其中核心思想为头插法,利用头插法可以帮助我们很快的解决链表反转的问题,同时头插法作用很大,可以帮助我们解决很多的有关链表的问题,在我们以后遇到关于链表问题时都可以考虑是否能用到头插法,所以对于头插法我们需要取熟练的掌握并且运用,对我们的编程能力会有很大的提升实习编辑:衡辉作者:邓斯丹 陈文杰 李俭

(0)

相关推荐

  • 纯干货 | 揭开链表的真面目

    链表是一种常见的数据结构,链表是由一连串的结点组成,这个节点就是链结点,每个链结点都由数据域和指针域两部分组成. 使用链表结构可以克服数组结构需要预先知道数据大小的缺点,链表结构可以充分利用计算机内存 ...

  • ​LeetCode刷题实战143: 重排链表

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • ​LeetCode刷题实战24:两两交换链表中的节点

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  • 算法创作|神奇语言问题解决方法

    问题描述一位同学正在学习一门神奇的语言,其中的单词都是由小写英文字母组成,有些单词很长,而这位同学一直记不住,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现的最多来分辨单词,现在请帮助这位同学 ...

  • 算法创作|阶梯电价问题解决方法

    问题描述为了提倡居民节约用电,某省电力公司执行"阶梯电价",安装一户一表的居民用户电价分为两个"阶梯":月用电量50千瓦时(含50千瓦时)以内的,电价为0.53 ...

  • 算法创作 | 二叉树遍历问题解决方法

    问题描述二叉树的先序遍历.中序遍历.后序遍历怎么求?解决方案给你一个二叉树(如图)那么怎么找出它的先序遍历.中序遍历.后序遍历呢?我们先看一个简单二叉树来了解它的概念. 所谓前序,中序,后序就是指根所 ...

  • 算法创作|“画雪人”问题解决方法

    问题描述示例:运用Turtle画出一个戴帽子的雪人在你门前,我堆起一个雪人,代表笨拙的我,把你久等...解决方案掌握turtle库,you can do you want.代码清单 1 DFS求解1到 ...

  • 算法创作|简单行列式问题解决方法

    前言用Python做线代问题描述大二学习了行列式的部分知识,所以就想能不能用Python计算简单的行列式计算.输入:新建文件夹,建立一个新的Excel,写入图1数据,并重命名这页sheet为计算,并将 ...

  • 算法创作|调手表问题解决方法

    问题描述小明买了块高端大气上档次的电子手表,他正准备调时间呢.在 M78 星云,时间的计量单位和地球上不同,M78 星云的一个小时有 n 分钟.大家都知道,手表只有一个按钮可以把当前的数加一.在调分钟 ...

  • 算法创作|质数计数问题解决方法

    问题描述统计所有小于非负整数n的质数的数量.示例:输入:n = 10输出:4示例:输入:n = 1输出:0示例:输入:n = 0输出:0提示:0 <= n <= 5 * 106解决方案对于 ...

  • 算法创作 | 单链表插入问题解决方法

    问题描述 如何利用尾插法实现单链表中元素的插入? 如: 如何利用前插法实现单链表中元素的插入? 如: 解决方案 利用尾插法进行元素的插入:将需要插入的结点的前一个结点的next地址改成需要插入的结点 ...

  • 算法创作|单链表基本操作问题解决方法

    问题描述单链表:用文字描述要解决的问题是什么.用P表示head,也即是头指针,设计算法让P指向任何一个元素.示例:让P指向第n个元素.解决方案p=headfork in range(n):p=p.ne ...