解題思路:
此處類名我用漢字,主要為了自己練習,為了後期好找到進行回顧。最要用標準的英文類名呦
/*
題:輸入兩個鍊錶,找出他們的第乙個公共結點
重點審題:這種題只知道有兩個鍊錶,並不知道鍊錶的長度
*/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...