这两天计划着吧算法部分,学习一下。前天晚上看了链表的视频。
白天自己尝试了一下,虽然是最简单的算法题,但感觉自己还是有一定的难度。
下面对昨天的算法题进行一个自我总结。
1,简单的链表翻转。
方法思路:将原来链表head指向的下一个链表的内容保存到一个中间变量中。
讲head.next置为res,然后把head赋给新的结果res中。
这样就head的第一个元素倒叙的附在了后面。
最后将中间变量中的内容赋给head。
2,链表反转的变形,指定区间内实现链表翻转。
方法思路: 根据m的值找到开始翻转的位置和结束翻转的位置。
开始翻转根据n值的减小,结束翻转。
将翻转的部分和前面结束开始的位置连接上就是i一个新的结果。 (判断m值是否存在开头不需要翻转的部分)
18日: 今天一共写了三题,真的难道头疼。
1、删除倒数第n个元素。 如何做呢,两个指针一个,第二个指针和第一个指针相差n个位置。
同时向后平移,当平移到后面的指针为空时,将第一个指针的指向变换到下下一个元素。
完成
2、截取分割n段链表
首先整个链表长度,求出每段链表的元素个数和余数。
循环每个链表后,存入新的list中输出
3、合并两个有序链表
判断两个链表的大小,小的放入新链表中,依次循环只,都为空。