輸入兩個鍊錶,找出它們的第乙個公共結點。
示例 1:
1, 2, 3, 4, 5, 6, 7, 8, 9
10,11, 4, 5, 6, 7, 8, 9
返回4兩個鍊錶定義兩個指標指向頭節點,然後同時一步一步指向next,當next為null時,分別指向對方的頭結點。
直到指標指向的引用為同乙個物件就是所求, 因為兩個相交鍊錶只有相交點前面的長度可能不一致,每個指標走了對方的,肯定會在相交點相聚。
注意考慮根本沒有環的情況,別死迴圈了
public class findfirstcommonnode
public static listnode findfirstcommonnode(listnode phead1, listnode phead2)
point1 = point1.next;
point2 = point2.next;
if (objects.isnull(point1))
if (objects.isnull(point2))
}return point1;
}}
兩個鍊錶的第乙個公共結點
思路 獲取兩個鍊錶的長度,求的長度差n,讓長鍊表先遍歷n次,然後長鍊表和短鍊錶同時遍歷,當長鍊錶和短鍊錶相等時,即為第一公共結點。o m1 m2 public class findfirstcomnode int len1 getnodelength root1 int len2 getnodele...
兩個鍊錶的第乙個公共結點
題目 輸入兩個鍊錶,找出他們的第乙個公共結點。方法1 分別把兩個鍊錶的節點放入兩個棧裡,這樣兩個鍊錶的尾結點就位於兩個棧的棧頂,接下來比較兩個棧頂的結點是否相同。如果相同,則把棧頂彈出接著比較下乙個棧頂,直到找到最後乙個相同的結點。時間和空間複雜度都是o m n 方法2 先遍歷兩個鍊錶得到它們的長度...
兩個鍊錶的第乙個公共結點
輸入兩個鍊錶,找出它們的第乙個公共結點。分析 如果兩個單向鍊錶有公共的結點,那麼這兩個鍊錶從某乙個結點開始,他們的next結點都指向同乙個結點,但由於是單向鍊錶的結點,每個結點都只有乙個next結點,因此從第乙個公共結點開始,之後他們所有結點都是重合的,不可能出現分支。public listnode...