转自:http://www.cnblogs.com/youxin/p/3303172.html 1.链表中是否有环的判断 可以设置两个指针(fast,slow),初始值均指向头,slow每次向前一步,fast每次向前两步; 如果链表中有环,则fast先进入环中,而slow后进入环中,两个指针在环中必 ...
分类:
其他好文 时间:
2016-08-28 20:50:16
阅读次数:
310
用python写了一个购物车程序,主要是练习,代码如下主入口文件:main.py 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 #先调用用户登录函数,在进行逻辑模块的循环 5 #入口程序 6 7 import enter,operate.....
分类:
编程语言 时间:
2016-01-15 11:02:09
阅读次数:
179
SListNode*IsRing(SListNode*&pHead)//判断链表是否有环,求相聚点
{
//判空、有、没有
//思路:两个指针从头开始一快(2步)一慢(1步),若最后可以相聚,则链表有环
if(pHead)
{
SListNode*fast=pHead;
SListNode*slow=pHead;
while(fast&&fast->next)
{
fa..
分类:
编程语言 时间:
2016-01-05 01:37:54
阅读次数:
294
解决方案:1.找出链表1的环入口节点a1,链表2的环入口节点a2;2.如果a1=a2; 说明两个链表可能在入环之前或者入环第一个节点相交;将a1,a2作为两个链表的最后一个节点,转化为不带环的链表相交;其实在这种情况下已经说明两个链表已经相交了。3.如果a1!=a2;以a1为基准节点进行while循...
分类:
其他好文 时间:
2015-04-15 23:14:40
阅读次数:
247
1、链表定义
typedef struct ListElement_t_ {
void *data;
struct ListElement_t_ *next;
} ListElement_t;
typedef struct List_t_{
int size;
int capacity;
ListElement_t *head;
ListE...
分类:
其他好文 时间:
2014-12-13 23:25:33
阅读次数:
398
菜鸟系列之C/C++经典试题(七)
找含单链表的环入口点...
分类:
编程语言 时间:
2014-09-03 21:20:37
阅读次数:
292
分为两步
第一步 还是利用快慢指针,如果有环的话在利用快慢指针终会相会于一个节点。
第二步。然后从这节点出发每次出发走一步,同时从根节点出发每次出发也走一步则他们两个指针相遇的地方就是环的入口。
第一步好解释那么第二步是为什么呢?
网上有很多解法大都是从数学的角度来分析,有公式也有推算很不直观,我从图形的角度来看的话就相对理解起来简单很多。
将图摊开成一条线,假设我们有环而且...
分类:
其他好文 时间:
2014-08-09 02:40:07
阅读次数:
309
出题:判断一个单向链表是否有环,如果有环则找到环入口节点;分析:第一个问题:使用快慢指针(fast指针一次走两步,slow指针一次走一步,并判断是否到达NULL,如果fast==slow成立,则说明链表有环);第二个问题:fast与slow相遇时,slow一定还没有走完一圈(反证法可证明);示意图A...
分类:
其他好文 时间:
2014-05-26 10:22:27
阅读次数:
279