PTA数据结构链表共享后缀的链表

需要考虑:有无交集;有多个字符相同,但只有最后两个是公共的;有一个单词为空;全相等;

汇总网上代码,解析如下:

首先求出len1和len2,若len1>len2,令p1指向链表中的第len1-len2+1个结点,若len2>len1,令p2指向链表中的第len2-len1+1个结点 ,然后将指针P1和p2同步向后移动,直到P1和p2指向同一结点再比较接下来的几个节点

 

PtrToNode Suffix( List L1, List L2 )
{
    List P1,P2;
    P1=L1->Next;
    P2=L2->Next;
    int len1=0,len2=0;
    while(P1)//求链表1的长度 len1
    {
        len1++;
        P1=P1->Next;
    }
    while(P2)                          //求链表2的长度 len2
    {
        len2++;
        P2=P2->Next;
    }
    for(P1=L1;len1>len2;len1--)       //若len1>len2,令p1指向链表中的第len1-len2+1个结点 
        P1=P1->Next;
    for(P2=L2;len2>len1;len2--)      //若len2>len1,令p2指向链表中的第len2-len1+1个结点  
        P2=P2->Next;
    while(P1->Next!=P2->Next) 
    {
                                    /*将指针P1和p2同步向后移动, 直到P1和p2指向同一结点 */
        P1=P1->Next;
        P2=P2->Next;
    }
    return P1->Next; 
}

 

转载于:https://www.cnblogs.com/hzy-bwd/p/11565872.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值