好好刷题进大厂
好好刷题进大厂
全部文章
题解
未归档(1)
归档
标签
去牛客网
登录
/
注册
好好刷题进大厂的博客
全部文章
/ 题解
(共20篇)
题解 | #链表的奇偶重排#
双指针:时间复杂度O(n),空间复杂度O(1) 分割出两个链表出来,然后用奇链表的尾部指向偶链表的头部即可 import java.util.*; /* * public class ListNode { *&nbs...
Java
双指针
2021-11-15
0
270
题解 | #删除有序链表中重复的元素-II#
一次遍历:时间复杂度O(n),空间复杂度O(1) 思路:采用哨兵的思想,用一个常量记录重复的节点的值,直到便利到不重复节点的头上 public ListNode deleteDuplicates (ListNode head) {...
Java
计数器
2021-11-15
0
246
题解 | #链表中的节点每k个一组翻转#
1、递归:时间复杂度O(n),空间复杂度O(n/k)递归的深度 思路:双指针每一段进行反转,递归返回的每一次进行拼接 public ListNode reverseKGroup (ListNode head, int ...
Java
迭代
递归
双指针
2021-11-15
0
239
题解 | #两个链表生成相加链表#
时间复杂度:O(n),空间复杂度O(n) 思路:将链表的值分别放到两个双端队列中,从后往前加(大数加法类似) 将最后的结果拼接成新的链表; public ListNode addInList (ListNode head1...
Java
队列
2021-11-15
2
310
题解 | #单链表的排序#
1、选择排序,外层循环定位起点,默认为最小值,内层循环一直找后面比当前起点小的值进行交换 注:其实这样做是不好的做法,因为题目的意思是想涉及节点的交换而不是单纯的值交换,但是这样结果也是对的,属于取巧了 public ListNode sortInL...
Java
双指针
递归
2021-11-15
0
242
题解 | #判断一个链表是否为回文结构#
1、快慢指针:时间复杂度是O(n),空间复杂度是O(1) 思路:通过快慢指针找到中点,得到终点划分的A,B两段,将B段进行链表的反转,然后再和A段进行逐一比较; 注:快慢指针找中点的统一写法,这样写同是能找到B段的启始点的前一个位置,如果遇到需要断开A段与...
Java
双指针
2021-11-15
0
266
题解 | #两个链表的第一个公共结点#
双指针: 三种情况:(总长度分别为m,n) 1、存在公共节点: A链表未相交部分为a,相交部分为c ...
Java
双指针
2021-11-15
0
259
题解 | #链表中倒数最后k个结点#
1、快慢指针:时间复杂度是O(n),空间复杂度O(1) 思路:快指针比慢指针多走K步,当快指针走完时,慢指针正好是倒数第K个 public ListNode FindKthToTail (ListNode pHead, int&...
Java
双指针
2021-11-15
0
224
题解 | #删除有序链表中重复的元素-I#
双指针:空间复杂度O(1),时间复杂度O(n) public ListNode deleteDuplicates (ListNode head) { &nbs...
Java
双指针
2021-11-15
0
210
题解 | #链表内指定区间反转#
1、一次遍历,头插法:时间复杂度O(n),空间复杂度O(1) 思路:一个指针A定位到起始点的前一个位置,另外一个指针B定位到起始点W,B指针不停向后移动,遇到一个插到A与W之间 有人会问,如果起点是1,那它的前一个位置怎么办呢? 那么为了防止这种情况出现,那在链表前加一个哨兵就能解...
Java
双指针
2021-11-15
0
291
首页
上一页
1
2
下一页
末页