链表类

1.回文链表 使用快慢指针找到链表中点,然后把后半段链表进行反转,最终将前后两段链表进行逐个比较 2.环形链表 使用快慢指针,如果链表有环,快指…

1.回文链表 使用快慢指针找到链表中点,然后把后半段链表进行反转,最终将前后两段链表进行逐个比较

2.环形链表 使用快慢指针,如果链表有环,快指针会追上慢指针,否则,快指针会走到头退出循环。

3.环形链表2 同样的思路链表判环,然后双指针让一个指针从头出发,让一个指针从第一次相遇点出发,二者每次走一步,然后他们会在入环点相遇。

4.合并两个有序链表 创建一个新链表,然后比较两个链表当个节点的值,谁小接谁,然后往后移动,最后一定会有一段剩下,把这段接在最后

5.两数相加 核心是模拟竖式加法,sum % 10保留当前位,sum/10去保留进位。用cur保存当前节点的值,用sum来求当前节点的和,用carry来保存

6.删除链表的倒数第n个节点。 主要思路是双指针,先让快指针走n步,再让快指针和慢指针同时前进,当快指针走到头时,慢指针所在位置即倒数第n个节点,将此节点删除。

7.两两交换链表中的节点 局部的思想,每次只交换两个节点然后向后移动。

8.k个一组翻转链表 每次开始前先判断够不够k个一组,不够直接返回结束,足够k个的话,找到这组的尾节点,pre保存当前组前一个节点,head保存当前组头节点,tail保存当前组尾节点,next保存当前组的下一个节点即下一组头节点。对这组进行反转,prenext接新头,旧head接next下一组头节点。

9.排序链表 使用归并排序不断二分链表,找到链表中点,把链表断开,递归排左边右边,merge合并两个有序链表

10,合并k个升序链表 先分成单个链表,然后两两合并,再拿合并后的结果继续合并

主分类 写作与方法

整理博客系统、内容组织和长期写作的工作流。

标签

继续阅读

同一类问题,继续往下追。