九度論壇的機試題,浙大2012的上機題
題意大概是尋找兩個字串的第乙個公共節點
思路:1.先分別遍歷一次兩個鍊錶,計算兩個鍊錶的長度
2.由於兩個鍊錶相同節點後的節點都是相同的,所以從長鍊錶的頭結點開始遍歷到兩鍊錶的長度相同,例如上例word1遍歷到a
3.兩鍊錶同時遍歷到具有相同位址的節點,word1從a開始遍歷,word2從b開始遍歷,遍歷到i結束
#include #define max 100000
int main(void)
{ int f1,f2,n,i,len1,len2,tmp,s1,s2,a[max];
char str[100];
while(scanf("%d%d%d",&f1,&f2,&n)!=eof)
{for(i=0;i=len2)
for(s1=f1,i=0,s2=f2;i
兩個單鏈表的第乙個公共節點
題目 求兩個單鏈表的第乙個公共子節點。思路 我們可以先遍歷兩個單鏈表得到長度,然後求得兩個鍊錶長度的差值,然後讓長的那個鍊錶先走到差值長度位置,然後兩個鍊錶再同時遍歷,直到找到第乙個公共節點。struct listnode int getlistlength listnode head return...
兩個單鏈表的第乙個公共節點
輸入兩個鍊錶,找出它們的第乙個公共結點。注意因為傳入資料是鍊錶,所以錯誤測試資料的提示是用其他方式顯示的,保證傳入資料是正確的 由於單鏈表中節點只能有乙個next指標,所以兩個單鏈表相交,只能是y型的形狀,兩者的尾部重疊,第乙個重疊的節點就是我們要找的第乙個公共節點。假設鍊錶1的長度為a c,鍊錶2...
求兩個單鏈表的第乙個公共節點
求兩個單鏈表的第乙個公共節點。分析 兩個鍊錶的第乙個公共節點之後的部分相同 完全重合 1.當兩個單鏈表a b長度相等時,對兩個單鏈表同時進行遍歷,若節點不相等,則指標分別指向下乙個節點 當a鍊錶的指標等於b鍊錶的指標時,該節點即為第乙個公共節點。2.當兩個單鏈表a b長度不相等時,假設b為兩個鍊錶中...