文档:知识点-7-链表题目.note
打开方式:有道云笔记,复制链接到浏览器
链接:http://note.youdao.com/noteshare?id=fcb8a0d0ca32b451a6f1e5be7e1c9838&sub=497F4CC28EBE4EE092958CFEE8C243C2
1.①NC3:链表中环的入口节点
思路:快慢指针方法判断链表是否存在环,并记录两指针相遇位置
1.②NC4:判断链表中是否有环
解法1:快慢指针
解法2:存放到集合中
2.②NC78:反转链表
2.②NC40:两个链表生成相加链表
3.NC96:判断一个链表是否为回文结构
解法1:栈
解法2:快慢指针+翻转
解法3:快慢指针+栈
解法4:list
4.①NC69:链表中倒数第k个结点
解法2:普通解法
4.②NC69:删除链表的倒数第n个节点
解法:快慢指针
5.① NC24:删除有序链表中重复出现的元素(不保留)
解法1:伪结点&双指针
5.② NC25:删除有序链表中重复的元素(保留)
解法2:迭代
解法3:递归
6.①NC70:单链表的排序:
解法1:归并排序
解法2:选择排序
解法3:虚假的选择排序:交换链表中的值
6.②NC2:重排链表
解法1:划分+逆序+拼接
解法2:线性表
7.NC133:链表的奇偶重排
解法1:分离节点后合并
8.NC23:划分链表
解法1:模拟
9.NC21:链表内指定区间反转
解法1:双指针法
解法2:暴力求解
10.NC50:链表中的节点每k个一组翻转
解法2:模拟法
11.NC132.环形链表的约瑟夫问题:
解法1:数学 + 迭代+递归
解法2:链表
解法3:单向链表
12.①NC33:合并2个有序链表
方法1:递归
方法2:循环
12.②NC51:合并k个已排序的链表
解法1:优先级队列
解法2:递归
解法3:递归+归并排序的思路:
解法4:循环遍历
13.NC66:两个链表的第一个公共结点
解法2:哈希
解法3:栈
解法4:求差法
有环思路:较为麻烦