码迷,mamicode.com
首页 > 其他好文 > 详细

单链表相关问题

时间:2019-10-30 20:03:24      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:fas   next   lse   pre   bre   判断   ast   相关   null   

/*
判断单链表是否存在环
1)暴力:双层循环遍历(n^22)双指针:快指针fast=NULL,慢指针slow=NULL
int judge(link head)
{
    if(NULL==head) return false;
    link fast = head,
         slow = head;
    while(slow!=NULL && fast!=NULL)
    {
        slow = slow->next;
        fast = fast->next->next;
        if(slow==fast)
        {
            return true;
        }
    }
    return false;
}
计算带环单链表的长度
int count(link head)
{
    if(NULL==head)
        return false;
    link fast = head,
         slow = head;
    while(slow!=NULL && fast!=NULL)
    {
        slow = slow->next;
        fast = fast->next->next;
        if(slow==fast)
        {
            flag = true;
            break;
        }
    }
    if(flag)
    {
        int ans = 1;
        slow = slow->next;
        while(slow!=fast)
        {
            ans++;
            slow = slow->next;
        }
        return ans ;
    }
    return false;
}
查找单链表中环的入口
设环长为n,非环形部分长度为m
link find(link head)
{
    int flag = false;
    if(NULL==head) return false;
    link fast = head,
         slow = head;
    while(slow!=NULL && fast!=NULL)
    {
        slow = slow->next;
        fast = fast->next->next;
        if(slow==fast)
        {
            flag=true;
            break;
        }
    }
    if(flag)
    {
        slow = head;
        while(slow!=fast)
        {
            slow = slow->next;
            fast = fast->next;
        }
        return slow;
    }
    return NULL;
}

 

单链表相关问题

标签:fas   next   lse   pre   bre   判断   ast   相关   null   

原文地址:https://www.cnblogs.com/Shallow-dream/p/11767269.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!