輸入兩個鍊錶,找出他們的第乙個公共結點

2021-09-20 15:21:50 字數 993 閱讀 2535

解題思路:

此處類名我用漢字,主要為了自己練習,為了後期好找到進行回顧。最要用標準的英文類名呦

/*

題:輸入兩個鍊錶,找出他們的第乙個公共結點

重點審題:這種題只知道有兩個鍊錶,並不知道鍊錶的長度

*/public class 鍊錶第乙個公共結點

}//鍊錶的頭結點

public node nn = new node(null);

public node n = nn;

public void add(integer num)

//第一種方法:直接遍歷兩個鍊錶找到相同的結點,採用兩層迴圈,時間複雜度為o(n²),時間複雜度太高

//第二種方法:單獨變數裡兩個鍊錶,算出鍊錶的長度,a為兩個鍊錶長度的差值,讓鍊錶長度長的先走a步,然後兩個鍊錶一塊走

// 這樣時間複雜度為o(n)

public static integer find(node a,node b)

while (b.next!=null)

// system.out.println(lengtha+" "+lengthb);

integer max = math.max(lengtha,lengthb);

for(int i=1;i<=max;i++)else

continue;

}//差值步數走完後,讓兩個鍊錶一塊走,直到有相同的結點值時輸出

aa = aa.next;

bb = bb.next;

if(aa.value==bb.value)

}return null;

}public static void main(string args)

}

輸入兩個鍊錶,找出他們的第乙個公共節點

分析 如果兩個單向鍊錶有公共的結點,也就是說兩個鍊錶從某一結點開始,它們的m pnext都指向同乙個結點。但由於是單向鍊錶的結點,每個結點只有乙個m pnext,因此從第乙個公共結點開始,之後它們所有結點都是重合的,不可能再出現分叉。所以,兩個有公共結點而部分重合的鍊錶,拓撲形狀看起來像乙個y,而不...

輸入兩個鍊錶,找出它們的第乙個公共結點

問題 輸入兩個鍊錶,找出它們的第乙個公共結點。分析 第一反應是蠻力法,這是沒認真思考才想到的方法。仔細分析就會發現,這兩個鍊錶有著共同的尾部,在兩個煉表達到第乙個公共結點後,之後每個結點都是相同的,拓撲形狀呈現為y型結構。思路一 首先遍歷兩個鍊錶,得到兩個鍊錶的長度,並得到兩個鍊錶的長度差。然後進行...

輸入兩個鍊錶,找出它們的第乙個公共結點

題目描述 輸入兩個鍊錶,找出它們的第乙個公共結點。分析 關鍵 公共部分長度一樣的,讓不公共的部分同步往前走就可以了。也就是長的先走,走到剩餘鍊錶長度和另乙個鍊錶長度相同的地方,兩個鍊錶同步走。class solution def findfirstcommonnode self,phead1,phe...