題目:
給出兩個單鏈表的頭指標h1 h2,判斷兩個鍊錶是否相交
思路:1.如果兩個鍊錶都沒有環:
如果相交:則尾結點一定一樣
如果不相交,尾結點不一樣
2.乙個有環,乙個無環,則一定不相交
3.兩個都有環,
如果相交,則環為同乙個環
如果不相交,則環不一樣
首先需要判斷是否有環
struct listnode
listnode;
bool judgecircle(listnode* head)
return false;
}
然後,如果有環就需要找到環裡面的乙個結點,然後判斷這個結點在不在另乙個煉表裡
尋找乙個環裡的結點:
listnode* findonenode(listnode* head)//已經判斷出煉表有環
return null;
}
判斷該結點在不在另乙個有環的鍊錶裡面
bool i***istinlist(listnode* head2,listnode* pnode)
} if(pnode == ptemp) return true;
p1 = p1->m_pnext;
while(p1!=ptemp)
return false;
}
判斷兩鍊錶是否相交
1.判斷鍊錶帶不帶環 2.如果都不帶環,就判斷尾節點是否相等 3.如果都帶環,判斷一條鍊錶上兩指標相遇的那個節點,在不在另一條鍊錶上,如果在,則相交,如果不在,則不相交 那麼如何判斷是否帶環?設定兩個指標 p1 p2 開始都指向鍊錶的頭,p2 每次移動兩步 p1每次移動一步,如果存在環,則他們必在環...
7 微軟亞院之程式設計判斷倆個鍊錶是否相交(鍊錶)
今天看了july的一篇經典文章 程式設計師程式設計藝術 第九章 閒話鍊錶追趕問題 因為現在一直複習資料結構有關鍊錶的演算法,順便總結下,學習下july大牛的判斷鍊錶是否相交。出處 題目 給出兩個單向鍊錶的頭指標,判斷是否相交。下面是july文章上面的解法 分析 這是來自程式設計之美上的微軟亞院的一道...
第12題 判斷兩個鍊錶是否相交
題目 判斷兩個鍊錶是否相交 分析 如果被問道此問題,一定要分兩種情況回答,第一種是鍊錶不存在環,第二種就是存在環的情況 1.先判斷帶不帶環 2.如果都不帶環,就判斷尾節點是否相等 3.如果都帶環,判斷一煉表上倆指標相遇的那個節點,在不在另一條鍊錶,如果在,則相交,如果不在,則不相交 struct n...