連結串列面試題(十二)---判斷兩個都不帶環的連結串列是否相交

gogogo_sky發表於2017-05-17

一、結構體定義

typedef int DataType;

typedef struct ListNode//定義結點
{
    DataType data;
    struct ListNode* next;
}ListNode,*PListNode;

typedef struct  PList//定義一個成員是指向結點的指標的結構體
{
    PListNode PHead;
}PList,*PList;

二、題目分析

兩個連結串列相交有以下幾種情況:

這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

三、函式實現(判斷兩個都不帶環的連結串列是否相交

//12.判斷兩個都不帶環的連結串列是否相交;
int CheckCross(PListNode PHead1,PListNode PHead2)
{
    PListNode cur1=PHead1;
    PListNode cur2=PHead2;
    if (cur1==NULL||cur2==NULL)
        return 0;
    while (cur1->next)
    {
        cur1=cur1->next;
    }
    while (cur2->next)
    {
        cur2=cur2->next;
    }
    if (cur1==cur2)
        return 1;
    else
        return 0;

}

相關文章