HoroOVO 2022-03-21 20:42 采纳率: 100%
浏览 54
已结题

关于在共享后缀的链表遇到段错误求解

提交答案后显示的错误为段错误

img

题目为找出两个链表的公共后缀。
L1和L2都是给定的带头结点的单链表。函数Suffix应返回L1和L2的公共后缀的起点位置。

由于题目为函数题,输入为题目完成。

以下为我的代码:

PtrToNode Suffix( List L1, List L2 )
{
int i;

List P;
List R;
List Q;
List S;
P = L2->Next;
R = L1->Next;
while(P!=NULL)
{
    for(i=0;;i++)
    {
                
          if(P->Data==R->Data)
         {
     
                 Q = P;
                 S = R;
                     while(Q->Data==S->Data)
                     {
                            Q=Q->Next;
                            S=S->Next;
                            if(Q==NULL&&S==NULL)
                           {
                              return R;
                            }
              
                     }
          
        }
          
        if(R->Next==NULL)
      {
                 break;
      }
                  
       R=R->Next;
      
    }
    
    R=L1->Next;
    P=P->Next;
}

return NULL;

}

  • 写回答

1条回答 默认 最新

  • 魔法自动机 2022-03-22 11:08
    关注

    我觉得应该是这段代码导致段错误。

    while(Q&&S&&Q->Data==S->Data)//这里要判断一下Q和S是否是NULL
    {
        Q=Q->Next;
        S=S->Next;
        if(Q==NULL&&S==NULL)
        {
            return R;
        }           
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月30日
  • 已采纳回答 3月22日
  • 创建了问题 3月21日