请判断一个链表是否为回文链表。 代码思路: 不考虑空间复杂度的话,这道题其实很容易。但是一旦考虑了空间复杂度,就表示需要对原始链表进行操作。 首先先利用快慢指针找到原始链表的中间,因为考虑到奇偶,所以slow指针需要往后走一位,保证需要反转的链表是跳过了奇数的中间位,然后再反转后面的链表。这个时候只 ...
分类:
其他好文 时间:
2019-04-12 17:44:09
阅读次数:
194
做LeetCode碰到两个快慢指针运用的题目,记录一下,当然这个东西应用的地方肯定不止下面这两个了,以后要是碰到就再更新 快慢指针: 这里快慢实际是指他们移动的步数,一个一次移动多个位置(一般二),一个移动一个 1,判断链表里是否存在环 题目描述: 给定一个链表,判断链表中是否有环。 为了表示给定链 ...
分类:
其他好文 时间:
2019-04-11 01:29:08
阅读次数:
113
弄懂了思路: 首先判断是否为环:快慢指针,快是慢的两倍,如果相遇则有环;此时两个指针走的路程差就是环的长度或长度的n倍; 头到入口:a;环长度:b;相遇点到入口:c; 则 2*(a+b-c) = a+b+b-c; 得a=c; 即头到入口=相遇点到入口。 将快指针指向头,相同速度移动,遇到即为入口结点 ...
分类:
其他好文 时间:
2019-03-11 13:26:49
阅读次数:
128
1.取linked list 中间值,用快慢指针 2.停止的条件是fast.next=none 和fast 一起来判断,因为fast是对偶数个,fast.next 是 针对奇数个的时候 ...
分类:
其他好文 时间:
2019-01-25 23:21:50
阅读次数:
223
方法一 活用set 方法二 快慢指针找中点然后反转后半部分链表,然后插入到前半个链表当中去 ...
分类:
其他好文 时间:
2019-01-12 17:55:09
阅读次数:
120
主要的方法是使用快慢指针来解决,然后让快慢指针同时向前进(让慢指针一次移动一步,快指针一次移动两步),当慢指针移动k下时指向了环路的开头,此时快指针已经在环路中移动了k下了,设环路有L个结点这么长,那么快指针与慢指针相距为L-k的路径长度。因为都已经进入了环路内,现在就是快指针追慢指针了,慢指针一次 ...
分类:
其他好文 时间:
2019-01-01 19:51:22
阅读次数:
189
解题思想: 1.创建一个结点类(为后面实现链表做基础) 2.创建一个查询倒数元素的方法 3.使用快慢指针的思想(主要的部分) 图中的表示的是查询倒数第k个结点的操作: 创建一个快慢指针后pre(慢指针)指向的第一个结点,在通过k的具体数值来移动p1(快指针),让它们之间包含k个结点(包括它们自身), ...
分类:
其他好文 时间:
2018-12-31 17:22:49
阅读次数:
144
解题思路: 1.创建一个结点类 2.创建一个删除方法 3.使用快慢指针的思想(主要的部分) 代码如下: 结果: ...
分类:
其他好文 时间:
2018-12-31 15:42:40
阅读次数:
166
使用快慢指针原理可以快速地找出单链表的中间结点,本文使用Java语言实现 ...
分类:
编程语言 时间:
2018-12-30 22:10:07
阅读次数:
172