兩個鍊錶的第乙個公共結點

2021-07-04 20:51:34 字數 763 閱讀 3674

思路:獲取兩個鍊錶的長度,求的長度差n,讓長鍊表先遍歷n次,然後長鍊表和短鍊錶同時遍歷,當長鍊錶和短鍊錶相等時,即為第一公共結點。(o(m1+m2))

public

class findfirstcomnode

int len1=getnodelength(root1);

int len2=getnodelength(root2);

int count=(len1-len2)>0?(len1-len2):(len2-len1);

listnote longlistnote=(len1-len2)>0?root1:root2;

listnote shortlistnote=(len1-len2)>0?root2:root1;

int i=0;

while((longlistnote!=null)&&(shortlistnote!=null)&&longlistnote!=shortlistnote)

}listnote firstcomnode=longlistnote;

system.out.println(firstcomnode.getvalue());

return firstcomnode;

}public

static

intgetnodelength(listnote root)

int len=0;

while(root!=null)

return len;

}}

兩個鍊錶的第乙個公共結點

題目 輸入兩個鍊錶,找出他們的第乙個公共結點。方法1 分別把兩個鍊錶的節點放入兩個棧裡,這樣兩個鍊錶的尾結點就位於兩個棧的棧頂,接下來比較兩個棧頂的結點是否相同。如果相同,則把棧頂彈出接著比較下乙個棧頂,直到找到最後乙個相同的結點。時間和空間複雜度都是o m n 方法2 先遍歷兩個鍊錶得到它們的長度...

兩個鍊錶的第乙個公共結點

輸入兩個鍊錶,找出它們的第乙個公共結點。分析 如果兩個單向鍊錶有公共的結點,那麼這兩個鍊錶從某乙個結點開始,他們的next結點都指向同乙個結點,但由於是單向鍊錶的結點,每個結點都只有乙個next結點,因此從第乙個公共結點開始,之後他們所有結點都是重合的,不可能出現分支。public listnode...

兩個鍊錶的第乙個公共結點

struct listnode 這是乙個比較簡單的題,首先,我們可以知道,單項鍊表要是有乙個公共結點,則這兩個鍊錶的形式可以表示為乙個 y 一開始的時候,我並沒有考慮到兩個鍊錶的長度不同問題 看了解析以及書上的思路,寫出下面的 鍊錶的遍歷還是比較簡單的 只不過就我自己而言,之前由於寫了多項式的相乘相...