首页 > 其他 > 详细

LeetCode-链表

时间:2019-08-21 18:48:26      阅读:108      评论:0      收藏:0      [点我收藏+]

138. Copy List with Random Pointer 复制带有随机指针的链表

https://leetcode.com/problems/copy-list-with-random-pointer/

题目:给出一个链表,使得每个节点包含一个额外的随机指针,该指针可以指向列表中的任何节点或NULL。

思路:需要复制的链表带有随机指针,每一个节点都随机指向任意一个节点或指向null,第一次遍历生成所有新节点,同时建立一个原节点和新节点的 HashMap,第二次遍历给随机指针赋值。

 

141. Linked List Cycle 有环的链表

https://leetcode.com/problems/linked-list-cycle/

题目:给定一个链表,确定其中是否有一个循环。为了表示给定链表中的一个循环,我们使用一个整数pos,它表示尾连接到的链表中的位置(0索引)。如果pos是 -1,则链接列表中没有循环。

思路:采用快慢指针,快指针每次移动两步,慢指针每次移动一步,如果快慢指针汇合,则说明环存在,否则不存在。

 

142. Linked List Cycle II 有环的链表 II

https://leetcode.com/problems/linked-list-cycle-ii/

题目:给定一个链表,返回环开始的节点。如果没有环,则返回null。为了表示给定链表中的一个循环,我们使用一个整数pos,它表示尾连接到的链表中的位置(0索引)。如果pos是 -1,则链接列表中没有循环。

思路:同样采用快慢指针,和141不同的是在快慢指针相等时,新建一个节点指向head,该节点和慢指针同时移动一步,最终汇合的地方则为环开始的节点。

 

143. Reorder List 重新排序链表

https://leetcode.com/problems/reorder-list/

题目:对于链表 LL0→L1→…→Ln-1→Ln,重新排序为 L0→LnL1→Ln-1→L2→Ln-2→…

思路:采用快慢指针来找到链表的中点,将中点后面的链表翻转,然后间隔地插入到前半部分的链表中。

 

147. Insertion Sort List 链表插入排序

https://leetcode.com/problems/insertion-sort-list/

题目:使用插入排序对链表进行排序。

思路:将元素从链表中取出来,然后按顺序插入到新链表中。

 

148. Sort List 链表排序

https://leetcode.com/problems/sort-list/

题目:使用常数空间复杂度对链接列表进行O(nlogn)时间排序。

思路:归并排序。

LeetCode-链表

原文:https://www.cnblogs.com/nomad1c/p/11390279.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!