链表类-leetcode刷题总结

我一直认为做任何事情,无论是做一个项目, 读一本书,学习某个知识点, 都是需要总结的。 总结意味着对整个过程做一次全面的梳理和反省, 这样才能走得更远。  做完这些总结后,  想忘掉这些知识都很困难。对于leetcode题目, 对于每一类题目做一个总结, 总结的内容主要包括 题目分类, 做题心得, 做题过程中采过的坑

先从题目类型入手

链表元素的调整

此类型最经典的题目就是链表的反转, 61  Rotate List

基于此题目可以做很多变化

相邻的两个元素为一组,对每组做反转,24 Swap Nodes in Pairs

相邻的k个元素为一组,对每组做反转,25 Reverse Nodes in k-Group

对指定连续元素做反转, 92 Reverse Linked List II

此类别相关的题目:

143 Reorder List

86 Partition List, 快速排序的基本思想之一,这里只是要求基于链表实现。 

对于此类题目,基本上都可以用递归来实现, 递归实现非常简单和优雅 递归函数的返回值基本都为链表头 和 链表尾元素(用于链表的连接)

链表合并

链表的合并也是合并排序的基础, 最简单的是2个已排序链表的合并,可以扩展到3个链表的合并和k个链表的合并。k个链表的实现可以基于最小堆实现, 降低时间复杂度。

21 Merge Two Sorted Lists

23 Merge k Sorted Lists

148 Sort List, 这一题可以用归并排序完成, 会用到 Merge Two Sorted Lists



会持续的补充。。。。 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.美妞每周六去高级英才上课都要6点20起床,助力早读和早读打卡都是在地铁上完成。我:美妞,妈妈知道你早起很困,你...
    E姐小酒窝阅读 137评论 0 1
  • 现在是中午一点四十八分,寝室里比往日更加安静,我知道她们都睡觉了,我却一直合不了眼,虽然人在床上,心却想着其他的事...
    放任依旧阅读 126评论 1 1