题目链接题意: 给出单链表, 判断是否存在环.方法就是大步小步...附上代码: 1 /** 2 *
Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 *
ListNode *next...
分类:
其他好文 时间:
2014-05-20 01:46:54
阅读次数:
308
题目:移除linked-list从尾到头的第N个元素自我思路:因为题目给出的N是从链表尾开始计算的,单链表不存在从子指向父亲的反向指针,因此我先计算链表的整个长度len,然后用len
- N来表示正向被删除元素所在的位置。代码:public ListNode removeNthFromEnd(Lis...
分类:
其他好文 时间:
2014-05-19 20:54:33
阅读次数:
378
刚开始,我想到的是一种笨方法,先遍历单链表,计算出单链表的长度len,然后再从头遍历单链表到第len-k个节点,那么这个节点既是单链表的倒数第k个节点。
不过这种算法时间复杂度挺高的,还有一种更简单的方法,就是设置两个指针,分别指向单链表的头节点,然后让其中一个指针,先走k步,之后...
分类:
其他好文 时间:
2014-05-19 11:40:44
阅读次数:
359
出题:把二元查找树转变成排序的双向链表。输入一棵二元查找树,要求将该二元查找树按照中序转换成一个排序的双向链表,要求不能创建任何新的节点,只能调整指针的指向;分析:递归的思路,当前节点需要进行的处理,并使用递归调用和返回值将子问题链接起来;首先明白二元查找树的特性,变成有序双向链表后当前根节点的左节...
分类:
其他好文 时间:
2014-05-19 10:02:49
阅读次数:
381
http://developer.51cto.com/art/201107/273003.htm也许你已经熟练使用了java.util包里面的各种数据结构,但是我还是要说一说java版数据结构与算法,希望对你有帮助。线性表,链表,哈希表是常用的数据结构,在进行Java开发时,JDK已经为我们提供了一...
分类:
编程语言 时间:
2014-05-19 08:26:57
阅读次数:
469
题目:合并两个有序单链表思路:一开始想复杂了,以为必须在原链表上修改(绕来绕去还AC了,但是思路相当绕),其实没有,按照正常地合并两个数组同样的方法也对。代码:public
ListNode mergeTwoLists(ListNode l1, ListNode l2) { if(l1 ...
分类:
其他好文 时间:
2014-05-19 07:48:32
阅读次数:
314
dllist.h 1 #ifndef _DLLIST_H 2 #define _DLLIST_H 3
4 #ifdef __cplusplus 5 extern "C" { 6 #endif 7 8 struct DLLNode_T{ 9 void
*pData; ...
分类:
其他好文 时间:
2014-05-18 19:51:42
阅读次数:
335
输入两个链表,找出他们的第一个公共结点。思想:我们可以先遍历一次得到分别得到两个链表的长度,然后计算得出长度差n,那么让较长的链表先走n步,然后两个链表一起向后走,直到两个指针指向同一个结点。这个结点就是我们要找的
结点。
分类:
其他好文 时间:
2014-05-17 14:19:43
阅读次数:
231
线性表的定义:N个数据元素的有限序列
线性表从存储结构上分为:顺序存储结构(数组)和 链式存储结构(链表)
顺序存储结构:是用一段连续的内存空间存储表中的数据 L=(a1,a2,a3....an)
链式存储结构:是用一段一段连续的内存空间存储表中每一行的数据,段与段之间通过一个引用(指针)相互连接来,形成一个链式的存储结构
看到顺序存储结构的图示,我们可能会马上联想到C语言的数组...
分类:
编程语言 时间:
2014-05-16 01:43:08
阅读次数:
359
List:
元素是有序的,元素可以重复,因为该集合体系有索引(脚标)常用的子类对象:1————ArrayList
底层的数据结构是使用的数组结构特点:查询速度快,但是增删比较慢2————LinkedList底层的数据结构使用的是链表结构特点:增删速度快,但是查询比较慢Vector
底层是数组数据结构...
分类:
编程语言 时间:
2014-05-15 22:21:45
阅读次数:
388