反转链表(反转链表js)
本篇文章给大家谈谈反转链表,以及反转链表js对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
K个一组反转链表
给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。
k 是一个正答搏轮整数,它的值小于或等于链表的长度。
如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。
示例:
给你这个链表:1-2-3-4-5
当 k = 2 时,应当返回: 2-1-4-3-5
当 k = 3 时,应当返回: 3-2-1-4-5
链接:
本题思路并不难得出,只是在实现上需要注意的细节较多。设置一个计数器n,以及p1,p2划分出当前区间,当n是k的倍数时反转该区间的链表(特别地,当n==k时将ans置为当前节点),设置一个temp为已排序链表的尾部,初始时为空,每次反转之前先将p2接在temp后,设置一个ne节点存储p2的下一个节点,然后反转区间内银笑链表,将temp移到p1,将p1与p2都移动到ne。
当跳出循环时,若有剩余节点未反转(即n%k!=0),此时p1位于剩余节点头部,其尾部未反转处于置空状态,将p1接到p2之后并返回ans即可,若无剩余节点未反转,因为每次反转过程清信中都会将尾部置空,返回ans即可。
[img]单链表解题思维
一、概念
链表兄宽由一组零散的结点通掘庆过指针连接而成,每个结点都包含当前结点内容和后继指针。相对于数组,它不受固于存储空间的限制,可更快捷地进行插入和删除操作,主要有以下几种类型:
1、单链表
指针指向下一个节点,终点指向 null
2、双链表
指针指向前一个节点和后一个节点
3、循环链表
最后一个节点指向第一个节点
在解决链表相关问题时,先执行三步骤,再敲下代码会更清晰
不同于数组,JS官方还没有提供一个直接的链表API,可通过对象的方式模拟出链表,其结构为
二、leetcode 最常见相关题型
1、 合并两个有序链表
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的
步骤:
2、 环形链表
给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。如果链表中存在环,返回 true 否则返回 false 。要求用 O(1) 内存解决此问题
pos 表示链表尾连接到链表中的位置,若 pos 是 -1 则该链表中没有环
步骤:
3、 反转链表
给你单链表的头节点 head ,请你使用迭代或递归地反转链表,并返回反转后羡散亮的链表
步骤:
4、 链表的中间结点
给定一个头结点为 head 的非空单链表,返回链表的中间结点,如果有两个中间结点,则返回第二个中间结点(给定链表的结点数介于 1 和 100 之间)
步骤:
5、 删除链表倒数第 n 个结点
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点
步骤:
6、 回文链表
给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false
步骤:
8、 相交链表
给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。题目数据保证整个链式结构中不存在环。
注意:
步骤:
9、 链表求和
给定两个用链表表示的整数,每个节点包含一个数位,这些数位是反向存放的,也就是个位排在链表首部。编写函数对这两个整数求和,并用链表形式返回结果
步骤:
c语言,链表的反转,请写出代码,并讲解下,谢了!!!!!
扣着的是头节点(头子)
车是首节点(首子)
马是次节点(次子)
牙签细的是指针指向,香头发黑的是指向,铁头细的是指向。
根轮拦据步骤写程序的伪算法(3步4循环,7张图片搞定),如下:
以下是while循环(条件:香头指向不为空)
第一个循环把马弄到车前面,
第二个循环把相弄到马前面
第三个循环把士弄到相前面
........
直到香指向为空后停止循环。
代码如下:只需要一个首结点pHead,就能把链表找到,并倒置。具体代码如下
p香=pHead-pNext;
p铁=p香-pNext;
p香-pNext=NULL;
P香=p铁
while(p香 !=NULL)
{
p铁=p香-pNext;
p香-pNext=pHead-pNext;
pHead-pNext=p香;
p香=p铁;
}
对照伪算法(三步四循环),和上面的代码是一一对应的:
第一步:香头指向首子,铁头指向次子
第二步:删掉首子指向次子(铁头所指向的那个子)的牙签
第三步:香头跟着铁头
以下循环条件:(条件:香头指向不为空)
{
循环1:铁头移动到香头的下一个指向
循环2:香头的下一个指向首子
循环3:头子的下一个跟着香头
循环4:香头跟着铁头
}
自己用道具操作几遍,然后把流程背会,以后自纯扒己根据腊裤胡流程写代码即可。
关于反转链表和反转链表js的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。