兩個鍊錶的第乙個公共節點(劍指offer 52)

2021-10-11 21:32:18 字數 619 閱讀 4057

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

如果暴力解決的話,複雜度 n*m不用說了

但是可以從後面開始遍歷,因為既然是公共節點,從後開始都是一樣的,然後知道找到第乙個不一樣的節點,他的前乙個節點就是我們的答案

下面附上**:

struct listnode };

class

solution

sta_a.

push

(nullptr);

while

(node_b!=

nullptr

) sta_b.

push

(nullptr);

node_a=sta_a.

top();

node_b=sta_b.

top();

sta_a.

pop();

sta_b.

pop();

while

(!sta_a.

empty()

&&!sta_b.

empty()

)return node_a;}}

;

劍指offer 兩個鍊錶的第乙個公共節點

題目延伸 程式設計之美中的求兩個節點是否相交 將兩個節點串在一起,若有節點,串在一起的節點就會出現環,利用一二不長不等,兩個節點在環中必然相遇。本題描述 輸入兩個鍊錶,找出它們的第乙個公共結點。分析 乙個簡單的方法是 首先遍歷兩個鍊錶得到它們的長度,就能知道哪個鍊錶比較長,以及長的鍊錶比短的鍊錶多幾...

劍指offer 兩個鍊錶的第乙個公共節點

題目描述 輸入兩個鍊錶,找出它們的第乙個公共結點。公共結點是位址相同的兩個結點,也就是同乙個結點,由於是單向鍊錶,所有從公共結點之後兩鍊錶重合。方式一 繁瑣,易理解版 先給定兩個指標使其能夠表示兩個鍊錶的頭結點 當前節點 首先讓兩個節點的長度保持一致,也就是確定好兩個鍊錶的長度length1,len...

劍指offer 兩個鍊錶的第乙個公共節點

coding utf 8 class listnode def init self,x self.val x self.next none class solution def findfirstcommonnode self,phead1,phead2 write code here p1 phe...