![](https://img-blog.csdnimg.cn/20190927151124774.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
链表
链表
Chamberlain T
尼蝶
展开
-
代码随想录算法训练营day4 | 24. 两两交换链表中的节点,19. 删除链表的倒数第 N 个结点,面试题 02.07. 链表相交,142. 环形链表 II
【代码】代码随想录算法训练营day4 | 24. 两两交换链表中的节点,19. 删除链表的倒数第 N 个结点,面试题 02.07. 链表相交,142. 环形链表 II。原创 2023-07-18 03:43:49 · 235 阅读 · 0 评论 -
代码随想录算法训练营day3 | 203. 移除链表元素,707. 设计链表,206. 反转链表
【代码】代码随想录算法训练营day3 | 203. 移除链表元素,707. 设计链表,206. 反转链表。原创 2023-07-15 01:40:14 · 157 阅读 · 0 评论 -
LeetCode.23. 合并K个升序链表
LeetCode.23. 合并K个升序链表难度:hard方法一:利用优先队列,得到k个链表中的最小节点,反复添加:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListN.原创 2022-05-24 17:42:23 · 227 阅读 · 0 评论 -
LeetCode.21. 合并两个有序链表
LeetCode.21. 合并两个有序链表难度:easy方法一:递归:// 递归方法class Solution { public ListNode mergeTwoLists(ListNode list1, ListNode list2) { if (list1 == null) { return list2; } if (list2 == null) { return l..原创 2022-03-26 11:08:05 · 545 阅读 · 0 评论 -
LeetCode.141. 环形链表
141. 环形链表难度:easy方法一:快慢指针,因为快指针每次都比慢指针多移动一个节点,所以如果有环的话他们一定会相遇;public class Solution { public boolean hasCycle(ListNode head) { if (head == null || head.next == null) { return false; } ListNode slow =...原创 2022-03-22 18:00:41 · 1318 阅读 · 0 评论 -
LeetCode.42. 环形链表 II
LeetCode.42. 环形链表 II一道很经典的链表题,要解决两个问题:判断是否存在环:快慢双指针,若两个指针相遇则说明有环; 找到环的入口:通过数学推导,可以发现:两个节点,分别从头结点和快慢指针相遇点开始移动,再次相遇的点就是环的入口;数学推导:(盗图from代码随想录)相遇时: slow指针路程:S(slow) = x + y + n1 (y + z) fast指针路程:S(fast) = x + n2 (y + z) + y 又因为:S(slo...原创 2022-01-29 11:17:15 · 448 阅读 · 0 评论 -
LeetCode.382. 链表随机节点
LeetCode.382. 链表随机节点方法一:动态整数数组Java:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode n..原创 2022-01-16 23:01:30 · 192 阅读 · 1 评论 -
LeetCode.面试题 02.07. 链表相交
LeetCode.面试题 02.07. 链表相交难度:easyJava:栈:思路:两个链表分别入栈,然后出栈,若出栈第一个元素不等则不相交,反之则一直出栈直至不相等;养成好习惯,给链表添加虚拟头结点方便操作;/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) {..原创 2021-12-27 15:20:57 · 386 阅读 · 0 评论 -
LeetCode.19.删除链表的倒数第N个节点
LeetCode.19.删除链表的倒数第N个节点难度:mediumJava:双指针:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, L..原创 2021-12-27 14:12:22 · 211 阅读 · 0 评论 -
LeetCode.24. 两两交换链表中的节点
LeetCode.24. 两两交换链表中的节点难度:mediumJava:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode..原创 2021-12-26 17:50:30 · 70 阅读 · 0 评论 -
LeetCode.707.设计链表Linked List
LeetCode.707.设计链表Linked List难度:medium为了方便增删改查,我们引入虚拟头节点:dummy head;Java:单链表Singly Linked List:class ListNode { int val; ListNode next; ListNode() {} ListNode(int val) { this.val = val; } ListNode(int val, Li..原创 2021-12-26 00:12:57 · 87 阅读 · 0 评论 -
LeetCode.203.移除链表元素
LeetCode.203.移除链表元素难度:easy基础的链表删除元素,如果是C++,要记得手动清理移除的节点;三种方法:不用虚拟头结点,用虚拟头结点的方法,递归方法;Java:不用虚拟头结点的方法:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * Lis.原创 2021-12-17 15:30:04 · 560 阅读 · 0 评论 -
LeetCode.206.反转链表
LeetCode.206.反转链表难度:easy两种方法:迭代法和递归法一.迭代法Java:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode reverse.原创 2021-12-15 21:21:35 · 379 阅读 · 0 评论