LeetCode主题整理(4)链表及相关问题
2014-02-06 01:59
351 查看
Topic 1 反转链表
Reverse Linked List II
在第m~n个节点中反转单链表,注意这道题可以把代码写得很长,如果分为区间一[0,m-1],区间二[m-n],区间三[n+1,end]这三个区间的话。也可以写得很短,如果仔细观察发现其实只需要考虑第一个区间是否为NULL就可以了。
Reverse Nodes in K Group
每K个节点为一个单位,反转第1个单位之后,反转第2个单位,反转第i个单位,反转最后一个单位,如果最后一个单位不足K个,就不进行反转。非常有意思的一道题目,依然可以写得很短,也可以写得很长。如果你用递归的办法去写,可以很快写完。如果你用迭代的办法去写,都会比较长。不管是否是调用了Reverse Linked List
II中的函数,或者直接写一个大循环。
Reorder List
仔细观察后,发现本题的规律是,把链表后半段反转,然后依次插入到链表的前半段。
Rotate List
旋转链表。
Topic 2 从数组排序迁移到链表排序
Insertion Sort List
用链表来模拟插入排序
Partition
用链表来模拟快排中的partition
Sort List
用链表来进行归并排序,完成时间复杂度为O(N lgN),空间复杂度为O(1)的排序
Merge Two Sorted Lists
归并两个已经排好序的链表
Merge K Sorted Lists
归并K个已经排好序的链表
Topic 3 环形链表
Linked List Cycle
判断一个链表是否有环
Linked List Cycle II
如果一个链表有环,找到环的起始位置
Topic 4 其它问题
Copy List with Random Pointer
拷贝链表,链表的节点除了有next指针,还有random指针,指向任意一个点。
Remove Nth Node From End of List
删除从后向前数的第N个节点
Remove Duplicates from Sorted List
去掉链表中的重复元素,使得原来链表中的所有元素都出现并且只出现一次。
Remove Duplicates from Sorted List II
去掉链表中的重复元素,使得原来链表中的非重复元素都出现并且只出现一次,重复元素不出现。
Reverse Linked List II
在第m~n个节点中反转单链表,注意这道题可以把代码写得很长,如果分为区间一[0,m-1],区间二[m-n],区间三[n+1,end]这三个区间的话。也可以写得很短,如果仔细观察发现其实只需要考虑第一个区间是否为NULL就可以了。
Reverse Nodes in K Group
每K个节点为一个单位,反转第1个单位之后,反转第2个单位,反转第i个单位,反转最后一个单位,如果最后一个单位不足K个,就不进行反转。非常有意思的一道题目,依然可以写得很短,也可以写得很长。如果你用递归的办法去写,可以很快写完。如果你用迭代的办法去写,都会比较长。不管是否是调用了Reverse Linked List
II中的函数,或者直接写一个大循环。
Reorder List
仔细观察后,发现本题的规律是,把链表后半段反转,然后依次插入到链表的前半段。
Rotate List
旋转链表。
Topic 2 从数组排序迁移到链表排序
Insertion Sort List
用链表来模拟插入排序
Partition
用链表来模拟快排中的partition
Sort List
用链表来进行归并排序,完成时间复杂度为O(N lgN),空间复杂度为O(1)的排序
Merge Two Sorted Lists
归并两个已经排好序的链表
Merge K Sorted Lists
归并K个已经排好序的链表
Topic 3 环形链表
Linked List Cycle
判断一个链表是否有环
Linked List Cycle II
如果一个链表有环,找到环的起始位置
Topic 4 其它问题
Copy List with Random Pointer
拷贝链表,链表的节点除了有next指针,还有random指针,指向任意一个点。
Remove Nth Node From End of List
删除从后向前数的第N个节点
Remove Duplicates from Sorted List
去掉链表中的重复元素,使得原来链表中的所有元素都出现并且只出现一次。
Remove Duplicates from Sorted List II
去掉链表中的重复元素,使得原来链表中的非重复元素都出现并且只出现一次,重复元素不出现。
相关文章推荐
- 02-解决不能在web.xml中配置action问题
- Java Socket通信(多线程)
- 理解Java中的前期绑定和后期绑定
- 敏捷开发之Scrum扫盲篇
- Ubuntu使用
- java WEB开发国际化(二)
- Java WEB开发--国际化(一)
- 理解Java中的协变返回类型
- c# 赋值后最后一项数据部分丢失
- 12306与抢票插件初识
- python pip 打包指南
- ssh-copy-id 与端口
- windows环境下最简单的nginx + tomcat负载均衡配置示例
- 用递归的方法来实现强大的全排列功能
- cmu 1月小结
- 用递归的方法来实现强大的全排列功能
- PHP 简单网站右边的分享按钮 分享到空间、微博的代码
- 完美解决java.lang.OutOfMemoryError: bitmap size exceeds VM budget
- 你来决定世界是否公平,好么?
- 做人做事 注意细节