【LeetCodehot100】2:两数相加 19 删除链表倒数第n个节点

2:两数相加

题目核心是:

两个链表表示两个整数

每一位存一个数字

数字是倒序存储

要求返回它们的和

例如:

l1 = 2,4,3

l2 = 5,6,4

表示数字:

342

465

因为:

2 -> 个位

4 -> 十位

3 -> 百位

计算:

342 + 465 = 807

返回:

7,0,8

分析:

题目说的倒叙存储,很巧妙的符合了个十百位的数学计算

通过这一特点,我们想到了链表

为什么链表合适

当我们遍历链表时,从头到尾的遍历正好等于我们从个位开始计算的过程。

算法流程

1.创建一个结果链表

2.同时遍历两个链表

3.计算档当前位和进位

4.保存结果节点

这个过程我们需要定义的是:

创建一个结果链表(dummy节点)

进位记录:carry(sum/10)

当前位:cur(sum%10)

代码实现

java 复制代码
//创建一个虚拟头节点dummy
ListNode dummy=new ListNode(0);
//指针cur 指向 dummy 节点
ListNode cur=dummy;

int carry=0;

while(l1!=null||l2!=null||carry!=0){
  int x=(l1!=null)?l1.val:0;
  int y=(l2!=null)?l2.val:0;
  int sum=x+y+carry;
  //获取进位数
  carry=sum/10;
  //创建新节点
  cur.next=new ListNode(sum%10);
  //指针向后移动(从dummy指向后一位)
  cur=cur.next;
  if(l1!=null)l1=l1.next;
  if(l2!=null)l2=l2.next;

}
return dummy.next;

19 删除链表中 倒数第 n 个节点

题目核心是:

删除链表中 倒数第 n 个节点,并返回链表头节点。

也许第一反应是:

1 先遍历链表求长度

2 找到正数第 (len-n) 个节点

3 删除

但是这样遍历了两次,导致超时。

于是我们寻找到了:快慢指针的方式。

核心思想:快慢指针

流程:
先让fast指针先走n步
然后让fast和slow一起走

当fast达到末尾,slow在被删除元素的前面一个节点。

我们更改指针

java 复制代码
slow.next = slow.next.next

就达到了删除操作。

我们需要用到dummy节点

原因是:

如果我们删除的元素是第一个节点,没有dummy就很难处理。

有dummy:dummy -> 1 -> 2

代码实现

java 复制代码
ListNode dummmy=new ListNode(0);
dummy.next=head;
//不可以是head
ListNode fast=dummy;
ListNode fast=dummy;
//先让fast走n步
for(int i=0;i<n;i++){
  fast=fast.next;
}

//一起走
while(fast!=null){
 slow=slow.next;
 fast=fast.next;
}
//删除节点
slow.next=slow.next.next;

return dummy.next;
相关推荐
退休倒计时4 小时前
【每日一题】LeetCode 53. 最大子数组和 TypeScript
数据结构·算法·leetcode·typescript
2601_961875244 小时前
法考资料2026|全套|资料已整理
数据结构·算法·链表·贪心算法·eclipse·线性回归·动态规划
dtq04247 小时前
C语言刷题数组5,6(求平均值,求最大值)
c语言·数据结构·算法
洛水水7 小时前
【力扣100题】81.寻找两个正序数组的中位数
数据结构·算法·leetcode
Coder-magician8 小时前
《代码随想录》刷题打卡day15:二叉树part05
数据结构·c++·算法
Darling噜啦啦8 小时前
二叉树与递归算法实战:从树结构到 LeetCode 爬楼梯,一文吃透前端数据结构与递归思维
前端·javascript·数据结构
Irissgwe8 小时前
算法的时间复杂度和空间复杂度
数据结构·c++·算法·c·时间复杂度·空间复杂度
退休倒计时9 小时前
【每日一题】LeetCode 19. 删除链表的倒数第 N 个结点 TypeScript
leetcode·链表·typescript
qq_297574679 小时前
设计模式系列文章(基础篇第22篇):访问者模式——分离数据结构与操作,实现灵活扩展
数据结构·设计模式·访问者模式
云淡风轻~窗明几净10 小时前
角谷猜想的任意算法测试
数据结构·人工智能·算法