![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
链表
LeetCode链表专栏
jiangkun0331
Bugs总是让我们无法心安
展开
-
【LeetCode】 876. 链表的中间结点 Java版
876. 链表的中间结点给定一个带有头结点 head 的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。解决思路:定义两个节点,快慢节点;快节点的一次走两步,慢节点一次走一步;当fast == null 或者 fast.next为空的时候就说明fast走到链表尾巴了,这个时候slow就是链表的中间节点。这里的fast 和fast,next的判断条件分别对...原创 2020-04-27 12:45:32 · 173 阅读 · 0 评论 -
【LeetCode】 206. 反转链表 Java版
206. 反转链表反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL解决思路:需要定义四个节点; 为了解决反转当前节点的时候找不到前驱节点,那我们就需要一个节点来保存当前节点的前驱节点; 同时定义cur表示当前反转的节点; curNext是下一...原创 2020-04-27 12:30:47 · 178 阅读 · 0 评论 -
【LeetCode】 203. 移除链表元素 Java版
203. 移除链表元素删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5解决思路:定义两个节点,一个prev来表示删除节点的先驱,cur表示要删除的节点;在删除的时候,先考虑头节点后面的节点,如果先把头节点删除的话,头...原创 2020-04-27 11:59:18 · 522 阅读 · 0 评论 -
【LeetCode】 160. 相交链表 Java版
160. 相交链表编写一个程序,找到两个单链表相交的起始节点。如下面的两个链表:解决思路:先计算出两个链表的长度让长的先走长的那一部分此时两个链表一样长两个链表一起走,相遇就是交点Code: //先定义两个节点,假设pL为长的,pS为短的 ListNode pL = headA; ListNode pS = headB; i...原创 2020-04-26 18:16:21 · 183 阅读 · 0 评论 -
【LeetCode】 142. 环形链表 II Java版
142. 环形链表 II给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。解决思路:判断是否有环的思路还是和之前的一样:环形链表在有环的情况下,此时fast和slow已经相遇,通过下面的推...原创 2020-04-26 17:59:54 · 228 阅读 · 0 评论 -
【LeetCode】 141. 环形链表 Java版
141. 环形链表给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。我们可以分两种情况来考虑问题:链表长度为奇数或者链表长度为偶数定义两个节点:快慢节点fast slowfast一次走两步,slow一次走一步如果是奇数长度:那么fast.next 如果为...原创 2020-04-26 17:36:09 · 202 阅读 · 0 评论 -
【LeetCode】 21. 合并两个有序链表 Java版
21. 合并两个有序链表将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4思路很明确:定义一个虚拟头节点把新的链表连接起来,同时定义一个temp节点记录链表的尾巴,找到小的就直接插入尾巴;当两个链表都不空的...原创 2020-04-26 17:08:06 · 304 阅读 · 0 评论