![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
力扣
文章平均质量分 56
二峰✔
八千里路云和月。莫等闲
展开
-
LeetCode--删除链表的倒数第 n 个结点
本来打算成为一个只更新力扣题解的小博主,结果力扣题解没更新几个,其他内容倒是更新了不少=,=,是我肤浅了 题目: 示例 1: 给定一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 输入:head = [1,2,3,4,5], n = 2 输出:[1,2,3,5] 题解: 剑指 Offer II 021. 删除链表的倒数第 n 个结点(java图解) ...原创 2021-09-18 14:29:55 · 139 阅读 · 0 评论 -
双链表(Java)的添加,删除与查找
链表(Java)二 力扣:设计链表(707) 上次咱们介绍了单链表(链表(一)) (本次关于查找添加以及删除的实现也使用上次在单链表里写的接口) 下面咱们介绍一下双链表。双链表比单链表在查询方面要快得多,但是它更加复杂,它包含了 size,记录链表元素个数,和伪头伪尾。 一、节点结构: class ListNode{ int val; //指向下一个节点 ListNode next; // 与单链表的节点不同 // 指向下一个节点 ListNode prev;原创 2021-05-04 00:14:18 · 915 阅读 · 0 评论 -
KMP(java)关于next数组的代码分析
kmp算法 首先咱们先求next数组 代码如下 public int[] kmpnext(String dest){ int []next=new int[dest.length()]; next[0]=0; for(int i=1;j=0;i<dest.length();i++){ while(j>0 && dest.charAt(j)!=dest.charAt(i)){ j=next[j-1]; } if(dest.charAt(i)=原创 2021-04-20 23:31:59 · 507 阅读 · 4 评论 -
链表(Java)单链表的添加和删除
链表(Java) 力扣第707:设计链表 额外注意:假设链表中的所有节点都是 0-index 的(当时我没注意到这个,就被坑了)咱们是有头结点的,但是头结点不算在内,所以咱们循环的时候就要比输入的index少循环一次这也就是添加和删除在for循环的时候,咱们可以顺利找到位置为index的节点的前一个节点的原因,但是在查找的时候咱们要记得加一,才能找到目标节点 咱们可以设计一个单链表或者双向链表来解这个题目,所以咱们写了一个接口,方便大家知道有哪些需要实现的方法 /** * @program: testsp原创 2021-04-18 17:54:38 · 1246 阅读 · 0 评论 -
如何找到单链表的中间节点
如何找到单链表的中间节点 力扣P148 思路:借用两个快慢不同的指针,开始的时候让两个指针都指向链表第一个结点的位置,然后,让快指针一次走两步,让慢指针一次走一步。 链表结点个数为奇数个时:当快指针走到NULL前面一个结点的时候,慢指针此时刚好指向链表中间结点。 链表结点个数为偶数个时:当快指针走到NULL的时候,慢指针此时刚好指向链表中间结点。 public ListNode sortList(ListNode head) { if (head == null || head.nex原创 2020-11-21 10:58:06 · 817 阅读 · 0 评论