Danzo123
Danzo123
全部文章
分类
归档
标签
去牛客网
登录
/
注册
Danzo123的博客
全部文章
(共74篇)
题解 | 链表相加(二)
反转链表+进位模拟由于加法需要从个位开始,所以最直观的策略就是将链表反转,从个位数开始,从左到右计算结果,计算完再反转回来即可反转链表:将 9->3->7 变为 7->3->9,将 6->3 变为 3->6同步遍历求和:从头开始相加,维护一个进位变量 carry构...
2026-02-12
0
24
题解 | 两个链表的第一个公共结点
双指针法逻辑原理:假设链表 A 的非公共部分长度为 a,链表 B 的非公共部分长度为 b,公共部分长度为 c指针 p1 走完 A 后指向 B 的头部,总路程:a + b + c指针 p2 走完 B 后指向 A 的头部,总路程:b + c + a由于 a + b + c = b + c + a,两个指...
2026-02-11
0
22
题解 | 删除链表的倒数第n个节点
import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * this.val = val; * ...
2026-02-11
0
32
题解 | 链表中倒数最后k个结点
import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * this.val = val; * ...
2026-02-11
0
24
题解 | 链表中环的入口结点
还是使用快慢指针,为什么快慢指针能够找到环的入口节点,这里需要用到数学的推导假设:从头节点到环入口的距离为 a从环入口到相遇点的距离为 b从相遇点走到环入口的距离为 c(即环的长度为 b + c)在相遇时:慢指针走过的距离:s = a + b快指针走过的距离:f = a + n(b + c) + b...
2026-02-11
0
20
题解 | 判断链表中是否有环
判断一个链表有没有环:方法一:判读是否存在入度大于 1 的节点,使用一个哈希表 map 存储每个节点遍历的次数count(以节点的hashCode为key),如果存在 count > 1 的情况就返回 true,否则返回 false。该方法空间复杂度为 O(n),不合题意方法二:快慢指针法,设...
2026-02-11
0
29
题解 | 合并k个已排序的链表
基于合并两个已排序的链表,将k个已排序的链表不断的划分为2组,直到划分成2个或1个链表为止 import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ...
2026-02-11
0
21
题解 | 合并两个排序的链表
两个链表已排好序,直接按大小进行判断后,添加到新的链表中即可 import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int va...
2026-02-11
0
27
题解 | 链表内指定区间反转
需要采用不能断链的方法反转区间内的元素 import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * ...
2026-02-11
0
21
题解 | 最长不下降子序列
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in =...
2026-02-09
0
25
首页
上一页
1
2
3
4
5
6
7
8
下一页
末页