首页 > 其他 > 详细

2012 找到两个链表共同后缀起始位置

时间:2019-10-20 15:24:09      阅读:84      评论:0      收藏:0      [点我收藏+]

思想:假设一个链表比另一个链表长k个节点,我们先在长链表上遍历k个节点,之后同步遍历两个链表

1,遍历两个链表求出他们的长度

2,比较长度,找到较长链表

3,先遍历长链表的k个节点

4,同步遍历两个链表,直到找到相同节点或链表结束

代码:

LinkList search(LinList L1,linkList L2)
{
    int len1=length(L1);len2=lenth(L2);
    LinkList longl,shortl;
    if(len1>len2)
    {
        longl=L1->next;
        shortl=L2->next;
        L=len1-len2;
    }
    else
    {
        longl=L2->next;
        shortl=L1->next;
        L=len2-len1;
    }
    while(L--)
    {
        longl=longl->next;
    }
    while(longl!=NULL)
    {
        if(Longl==shortl)
            return longl;
        else
        {
            longl=longl->next;
            shortl=shortl->next;
        }
    }
    return NULL;
}

 

2012 找到两个链表共同后缀起始位置

原文:https://www.cnblogs.com/yangmenda/p/11707689.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!