以下都是单链表的基本操作,我都写了一遍,链表时间长不写一定会陌生,留给自己以后忘了看一眼,顺便给想学习链表的同学一点提示吧
首先先写头文件head.h,这里都是我定义好的函数分别有
这里的所有例子都是有头结点的链表,都是单链表操作
1)头插发建表 2)尾插法建表 3)打印链表 4)对链表赋值的时候进行插入排序 5)将链表翻转 6)找到链表倒数第n个元素 7)将两个链表连在一起 8)使单链表变成环链表
9)判断链表是否有环 10)将现有的链表排序进行插入排序(与4)不同,4)是在建立链表的时候进行排序...
分类:
其他好文 时间:
2014-08-09 11:40:27
阅读次数:
399
分为两步
第一步 还是利用快慢指针,如果有环的话在利用快慢指针终会相会于一个节点。
第二步。然后从这节点出发每次出发走一步,同时从根节点出发每次出发也走一步则他们两个指针相遇的地方就是环的入口。
第一步好解释那么第二步是为什么呢?
网上有很多解法大都是从数学的角度来分析,有公式也有推算很不直观,我从图形的角度来看的话就相对理解起来简单很多。
将图摊开成一条线,假设我们有环而且...
分类:
其他好文 时间:
2014-08-09 02:40:07
阅读次数:
309
题目描述:
输入一个链表,输出该链表中倒数第k个结点。
(hint: 请务必使用链表。)
输入:
输入可能包含多个测试样例,输入以EOF结束。
对于每个测试案例,输入的第一行为两个整数n和k(0
输入的第二行包括n个数t(1
输出:
对应每个测试案例,
若有结果,输出相应的查找结果。否则,输出NULL。
样例输入:
...
分类:
其他好文 时间:
2014-07-31 17:01:31
阅读次数:
272
问题:判断链表是否有环。分析:利用快慢指针slow,fast slow指针每次走一步,fast指针每次走两步,倘若存在环,则slow和fast必定在某一时刻相遇。 由于fast指针走的比slow快所以循环的时候只需要判断fast和fast->next不为空,判断fast->next是因为...
分类:
其他好文 时间:
2014-07-31 12:25:26
阅读次数:
236
【题目】
Given a linked list, determine if it has a cycle in it.
Follow up:
Can you solve it without using extra space?
【题意】
判断一个单向链表是否有环
【思路】
维护两个指针p1和p2,p1每次向前移动一步,p2每次向前移动两步
如果p2能够追上p1,则说明链表中存在环...
分类:
其他好文 时间:
2014-06-29 22:51:33
阅读次数:
267
题目:Linked List CycleGiven a linked list, determine if it has a cycle in it.Follow up:Can you solve it without using extra space?个人思路:1、判断一个链表是否有环,标准做法...
分类:
其他好文 时间:
2014-06-27 19:41:40
阅读次数:
165
1.判断单链表是否有环 使用两个slow, fast指针从头开始扫描链表。指针slow 每次走1步,指针fast每次走2步。如果存在环,则指针slow、fast会相遇;如果不存在环,指针fast遇到NULL退出。 就是所谓的追击相遇问题: 2.求有环单链表的环长 在环上相遇后,记录第一次...
分类:
其他好文 时间:
2014-06-17 00:42:49
阅读次数:
260
Given a linked list, determine if it has a
cycle in it.Follow up:Can you solve it without using extra
space?求链表是否有环的问题,要考虑链表为空的情况,定义一个快指针和一个慢指针,如果快指针和...
分类:
其他好文 时间:
2014-06-02 08:05:16
阅读次数:
255
出题:判断一个单向链表是否有环,如果有环则找到环入口节点;分析:第一个问题:使用快慢指针(fast指针一次走两步,slow指针一次走一步,并判断是否到达NULL,如果fast==slow成立,则说明链表有环);第二个问题:fast与slow相遇时,slow一定还没有走完一圈(反证法可证明);示意图A...
分类:
其他好文 时间:
2014-05-26 10:22:27
阅读次数:
279
判断单链表是否有环两个指针分别为p1和p2,每循环一次只向前走一步,p2向前走两步,知道p2碰到NULL指针或者两个指针相等则说明有环如果存在,start存放在圆环开始的节点bool
IsLoop(node *head,node *start){node *p1=head,*p2=head;if(h...
分类:
其他好文 时间:
2014-05-10 00:22:22
阅读次数:
272