链表面试题(十)---求带环单链表的环的长度

来源:互联网 发布:unity3d 游戏版本号 编辑:程序博客网 时间:2024/06/04 19:35

一、结构体的定义

typedef int DataType;typedef struct ListNode//定义结点{    DataType data;    struct ListNode* next;}ListNode,*PListNode;typedef struct  PList//定义一个成员是指向结点的指针的结构体{    PListNode PHead;}PList,*PList;

二、函数实现

用cur记录相遇结点的下一个位置,计数器num初始化为1;然后cur每次走一步,计数器加1,等到cur走到相遇点;num就统计出来环内结点的个数;

//10.求环的长度int GetCycleLength(PListNode Node)//Node为环内一点(即就是快慢指针相遇点){    PListNode meet=Node->next;    int num=1;    while (meet!=Node)    {        num++;        meet=meet->next;    }    return num;}
阅读全文
0 0
原创粉丝点击