2.7 编写一个函数,检查链表是否为回文。思路:1)可以利用链表中的元素采用头插法创建一个新的链表,然后比较两个链表的元素是否相等。 2)利用快慢指针,将链表后半部分逆转之后,比较前半部分与后半部分是否相等。 3)利用栈将链表中的元素保存,然后弹出与链表中元素比较。C++实现代码:#inc...
分类:
其他好文 时间:
2014-12-04 09:59:11
阅读次数:
103
Linked List CycleGiven a linked list, determine if it has a cycle in it.Follow up:Can you solve it without using extra space?SOLUTION 1:经典快慢指针问题。如果存在环...
分类:
其他好文 时间:
2014-11-30 00:15:56
阅读次数:
262
双向循环链表 和 单向循环链表 查找循环节点 思路都是一样。 快慢指针查找法。 理论可参考c 链表之 快慢指针 查找循环节点typedef struct Student_Double{ char name[10]; int point; struct Student_Double...
分类:
其他好文 时间:
2014-11-28 15:40:33
阅读次数:
157
参考:http://blog.csdn.net/wenqian1991/article/details/17452715上面分析了 根据这张图推倒出 数学公式。 刚接触 不能一下弄明白。下面结合上面文章的分析。仔细推倒一下 ,一般设置 快指针 速度是 慢指针的2倍。及 快指针每次遍历两个指针, 慢指...
分类:
其他好文 时间:
2014-11-27 12:09:45
阅读次数:
211
【题目】
Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST.
【解析】
分治:用快慢指针找到链表的中点,作为树的root,然后二分——中点之前的链表和中点之后的链表分别再构造二叉平衡树。
/**
* Defin...
分类:
其他好文 时间:
2014-11-24 22:39:00
阅读次数:
218
快慢指针:如果没有环,快指针一定先走完,两个指针不会相遇;如果有环,那么最多只有一个环,并且两个指针迟早都会进入环,假定环的长度为L,当慢指针进入环之后,快指针每次能向前追一步距离,最多只要L-1步就能追上慢指针所以可以用两个指针是否相遇来判断是否有环。
分类:
其他好文 时间:
2014-11-20 11:52:29
阅读次数:
172
第一步:检测链表是否有环。方法还是比较多的,这里先讲一个:快慢指针。快慢指针的方法,就是让两个指针同时指向链表。在向后遍历的时候,一个指针每次走两步,称为快指针;一个指针每次走一步,称为慢指针。如果快慢指针相遇,则说明链表有环,否则无环。(后面证明。)代码实现如下:// 如果有环,则返回快慢指针相遇...
分类:
其他好文 时间:
2014-11-15 17:04:23
阅读次数:
169
Given a linked list, determine if it has a cycle in it. Follow up:Can you solve it without using extra space?怎样判断一个链表之中是否有环?可以利用快慢指针的方法。定义两个指针fast和slo...
分类:
其他好文 时间:
2014-11-10 23:15:29
阅读次数:
289
Given a linked list, determine if it has a cycle in it.Follow up:Can you solve it without using extra space?思路:快慢指针的应用。快慢指针指的是移动的步长,即每次向前移动的快慢。例如可以让快指...
分类:
其他好文 时间:
2014-11-03 20:42:18
阅读次数:
204
Given a linked list, determine if it has a cycle in it.Follow up:Can you solve it without using extra space?Solution:快慢指针。 1 /** 2 * Definition for s....
分类:
其他好文 时间:
2014-10-17 15:16:48
阅读次数:
179