牛客245120908号
牛客245120908号
全部文章
分类
题解(44)
归档
标签
去牛客网
登录
/
注册
牛客245120908号的博客
TA的专栏
26篇文章
0人订阅
解题思路
26篇文章
317人学习
全部文章
(共12篇)
题解 | #删除有序链表中重复的元素-II#
import java.util.*; /* * public class ListNode { * int val; * ListN...
Java
链表
2022-08-14
0
191
题解 | #删除链表的倒数第n个节点#
来自专栏
感觉总是转不过这个弯来.. 倒数第N个节点,那就算正数。比如长度为5的链表12345,删掉倒数第2个,就是正数第3个3后面跟5变成1235,删掉倒数第5个,就是把头结点删了,变成2345,删掉倒数第1个,就是正数第4个后面跟成null了。所以重点是判断要删除的前一个,然后把前一个的next变成ne...
Java
链表
2022-05-12
0
227
题解 | #判断链表中是否有环#
来自专栏
定义双指针,一个快,每次跳2步,一个慢,每次跳1步,只要有环,可以一直跳,快指针一定会有等于慢指针的时候。如果没有环,快指针一定会先到链表末尾,末尾是null,跳出循环。 /** * Definition for singly-linked list. * class ListNode { *...
Java
链表
双指针
2022-04-30
0
275
题解 | #给单链表加一#
这道题也可以使用栈加取模取余的方式来做,方法就是判断栈顶元素加1后是否需要进位,比较麻烦。这里使用递归方式,如果当前节点是最后一个节点,直接加1,然后判断是否到10。 import java.util.*; /* * public class ListNode { * int val; ...
Java
链表
2022-04-02
0
289
题解 | #链表相加(二)#
因为是从后相加,往前进位,使用栈最方便,每次各取一个数,相加,分别与10取余和取模,余数作为进位,模作为值。由于下一个和需要加上进位,所以每次各取一个数相加时还需要加上余数。模就是最终的节点,所以没得到一个模,就将其插入到head后面,head后面原来的值后移,由于栈空之后还可能进位,所以最后要根据...
Java
栈
链表
2022-04-02
0
183
题解 | #合并k个已排序的链表#
这道题一开始就选择了for循环,就是提交的时候超时了,原理就是两两合并,合并使用递归就行。看了别人的,说是用分治算法,就是从中间劈开,左边合并左边的,右边合并右边的,最后两边再合并。也需要使用递归,就是左边不断中劈,直到相邻两个合并。 import java.util.*; /** * Defin...
Java
分治
链表
2022-04-02
0
183
题解 | #链表中倒数最后k个结点#
思路,倒数K个,第一个想到的就是栈,一个一个入栈,最后取K个。进阶要求空间复杂度为1,栈的空间复杂度为n,那就使用递归,链表有个好处,倒排的时候不用考虑next,取到的值的next还在 import java.util.*; /* * public class ListNode { * i...
Java
栈
链表
队列
2022-04-01
0
231
题解 | #删除有序链表中重复的元素-I#
这道题有个姐妹题,本题是重复元素留一个,另一道题是重复元素都去掉,区别在于是循环去重还是单个去重,意思是cur是一次跳多步还是一次跳一步 另一道题中,只要cur.val == next.val,next = next.next,pre.next=next,这是在循环体里,保证pre.next...
Java
链表
队列
2022-04-01
0
202
题解 | #删除有序链表中重复的元素-II#
1、假设有一个链表A[1,2,2,3,5,5,5],定义一个新链表B,设置哨兵节点-1,指向链表A,哨兵节点赋值给临时变量pre,链表B为[-1,,1,2,2,3,5,5,5],pre指向-1。 2、对A链表操作,cur=1,next=cur.next,当cur.val != next.val,pr...
Java
链表
2022-04-01
0
236
题解 | #两个链表的第一个公共结点#
链表里面有个指针,指向头结点的指针一般不要动,移动的时候找个替补指针,但是一直纠结,替补指针指向头结点,做了改动,不是照样改变了原链表吗,跪在每K个节点反转那道题了。 for循环YYDS /* public class ListNode { int val; ListNode...
Java
栈
链表
2022-04-01
0
193
首页
上一页
1
2
下一页
末页