輸入兩個鍊錶的頭結點,找出兩個鍊錶的第乙個公共節點
如果暴力解決的話,複雜度 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...