BeRichOk
BeRichOk
全部文章
分类
归档
标签
去牛客网
登录
/
注册
BeRichOk的博客
全部文章
(共20篇)
题解 | #判断一个链表是否为回文结构#栈|反转后半部分
解法1:使用栈出栈后和原来的节点对比,注意比较的是val,而不是节点本身:if(reverse.val != original.val)时间复杂度:O(n)空间复杂度:O(n) import java.util.*; public class Solution { public boolea...
2023-02-17
0
293
题解 | #链表相加(二)#栈/反转链表后相加
解法1:栈用2个栈来存储链表1和2,链表3来表示加和的结果,一个临时变量保存进位carryOver需要注意的点是:当某个链表的长度较长的时候,将它放入结果是,也要记得处理carryOver的部分时间复杂度:O(m + n)空间复杂度:O(m + n) import java.util.*; publ...
2023-02-17
0
339
题解 | #两个链表的第一个公共结点#双指针相遇
解法1:双指针遍历指针A先遍历链表1,结束了再遍历链表2指针B先遍历链表2, 结束了再遍历链表1相遇时:1.如果有公共节点假设链表1不在公共节点的部分长度为a1,在公共节点的长度为b,链表2不在公共节点的部分长度为a2,在公共节点的长度为bA和B走过了相同的节点数total,A在链表2上走过的节点数...
2023-02-10
1
359
题解 | #删除链表的倒数第n个节点#快慢指针/栈/递归
解法1:快慢指针先找到倒数第n+1个节点,然后删除倒数第n个节点如果这个节点是头节点,需要特殊处理一下 import java.util.*; public class Solution { public ListNode removeNthFromEnd (ListNode head, i...
2023-02-07
0
354
题解 | #链表中倒数最后k个结点# 快慢指针/栈/递归
解法1:快慢指针快指针先走K-1步慢指针再出发,当快指针到结尾的时候时候,慢指针就到了倒数第K个节点 import java.util.*; public class Solution { public ListNode FindKthToTail (ListNode pHead, int...
2023-02-07
0
315
题解 | #链表中环的入口结点# 快慢指针/哈希表/标记删除
解法1:边遍历边删除(边标记) public class Solution { public ListNode EntryNodeOfLoop(ListNode pHead) { if (pHead == null || pHead.next == null) { ...
2023-02-07
0
269
题解 | #判断链表中是否有环#快慢指针/哈希表
public class Solution { public boolean hasCycle(ListNode head) { if (head == null || head.next == null) { return false; ...
2023-02-06
0
227
题解 | #合并两个排序的链表#同时遍历选最小点/递归/插入
解法1: 遍历两个链表,每次选最小的元素作为下一个元素 public class Solution { public ListNode Merge(ListNode list1, ListNode list2) { if (list1 == null) { ...
2023-02-02
0
303
题解 | #链表内指定区间反转#
解法一:区间部分前驱插入 import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * } */ public class Solution { /** ...
2023-01-22
0
313
题解 | #反转链表#遍历/栈/前驱插入/递归
解法1:从头到尾挨个反转节点注意点是:防止链表成环,所以inverse之前要先head.next = null;一定要保存三个节点:当前节点,前一个节点和下一个节点因为要反转当前节点和前一个节点之间的指向inverse之前也要保存下一个节点,否则inverse之后该节点地址会丢失 public cl...
2023-01-20
0
315
首页
上一页
1
2
下一页
末页