java.util.LinkedList LinkedList是实现了List接口的双链表实现,拥有list的所有方法并且允许所有元素(包括null)。 双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地 ...
分类:
编程语言 时间:
2018-06-13 20:59:01
阅读次数:
186
问题:如何判断一个单向链表中是否存在环? 例如: 解题思路: 从一个实际的生活场景出发,两个人,在一个环形的操场上跑步的时候,如果有一个人跑得比另一个人还要快,那么,在n圈之后,这两个人总会在操场上的某个点相遇。将操场类比于链表中存在的环路径,将两个人看成两个指针,那么这道题 ...
分类:
其他好文 时间:
2018-06-02 14:25:11
阅读次数:
204
参考博客: http://www.cnblogs.com/skywang12345/p/3561803.html https://blog.csdn.net/howlaa/article/details/38513235 1、概述 线性表是一种线性结构,由数组、单项链表和双向链表组成,这里讲讨论双向 ...
分类:
编程语言 时间:
2018-05-27 20:28:46
阅读次数:
204
题目:输入一个链表,输出该链表中倒数第k个结点 思路:1.遍历两遍链表,第一遍找到链表长度n,第二遍从0到n-k+1找到倒数第k个节点,不是最优解。 2.使用两个指针,只需遍历一遍链表。第一个指针先走k-1步,然后两个指针同时向后遍历,当第一个指针走到尾节点时,第二个指针刚好在倒数第k个节点上。 注 ...
分类:
其他好文 时间:
2018-05-21 19:44:27
阅读次数:
178
vector 一个和数组类似的向量容器,除了数组的功能外还可以在尾部插入元素,可完全代替数组。vector是在堆中分配内存,元素连续存放,在插入和删除时会造成内存块的copy。 头文件 创建,初始值为0. 赋值 访问 排序 其它 string queue priority_queue(); pair ...
分类:
编程语言 时间:
2018-05-21 19:43:17
阅读次数:
266
下面是方法二: 第一种方法是找出两链表的长度差,把长链的指针向后移动,使得两指针以后的链长相等,再开始比较,找到公共节点。 第二种方法是把两个链表拼接一下,两个指针分别跑了一个长链和一个段链,最后必然汇聚于公共节点。 ...
分类:
其他好文 时间:
2018-05-21 16:19:20
阅读次数:
135
Solution1: Reverse and Compare 翻转整个Linked List, 然后用两个指针进行逐一比对 Solution2: Iterative Approach use Stack java class Result { public ListNode node; public ...
分类:
其他好文 时间:
2018-05-17 11:59:36
阅读次数:
151
问题描述: Given a linked list, determine if it has a cycle in it. 我的思路: 用一个指针指向链表头部,另一个指针在链表上移动。若两个指针指向地址相等,则存在环。 然后我没过OJ:) 因为循环链表的尾部并不一定链接头部,可能链接任意节点,此时会 ...
分类:
其他好文 时间:
2018-05-17 11:48:12
阅读次数:
123
题目要求:小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100。但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数)。没多久,他就得到另一组连续正数和为100的序列:18,19,20,21,22。现在把问题交给你,你能不能也很快 ...
分类:
其他好文 时间:
2018-05-15 01:49:08
阅读次数:
229
题目要求: 给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。 思路: 求和一定时,求两个数,就需要两个指针,两个指针一个大一个小不想等,首先让小的的指针不动,让大的指针向后移动,知道出现大于或者等于需要的和。等于时输出结果, ...
分类:
编程语言 时间:
2018-05-15 01:48:31
阅读次数:
297