leetcode链表

117 阅读1分钟

这两天计划着吧算法部分,学习一下。前天晚上看了链表的视频。

白天自己尝试了一下,虽然是最简单的算法题,但感觉自己还是有一定的难度。

下面对昨天的算法题进行一个自我总结。

1,简单的链表翻转。

方法思路:将原来链表head指向的下一个链表的内容保存到一个中间变量中。

讲head.next置为res,然后把head赋给新的结果res中。

这样就head的第一个元素倒叙的附在了后面。

最后将中间变量中的内容赋给head。

2,链表反转的变形,指定区间内实现链表翻转。

方法思路: 根据m的值找到开始翻转的位置和结束翻转的位置。

开始翻转根据n值的减小,结束翻转。

将翻转的部分和前面结束开始的位置连接上就是i一个新的结果。 (判断m值是否存在开头不需要翻转的部分)

18日: 今天一共写了三题,真的难道头疼。

1、删除倒数第n个元素。 如何做呢,两个指针一个,第二个指针和第一个指针相差n个位置。

同时向后平移,当平移到后面的指针为空时,将第一个指针的指向变换到下下一个元素。

完成

2、截取分割n段链表

首先整个链表长度,求出每段链表的元素个数和余数。

循环每个链表后,存入新的list中输出

3、合并两个有序链表

判断两个链表的大小,小的放入新链表中,依次循环只,都为空。