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

2021-10-02 16:23:57 字數 829 閱讀 2233

輸入兩個鍊錶,找出它們的第乙個公共結點。

第二種方法不使用輔助空間。

/*

struct listnode

};*/

class

solution

listnode* p2 = phead2;

while

( p2 )

listnode* node =

nullptr

;while

(!s1.

empty()

&&!s2.

empty()

&& s1.

top(

)== s2.

top())

return node;}}

;

/*

struct listnode

};*/

class

solution

// 指向長鍊表的指標先走,使得兩個鍊錶剩下的結點數相同。

while

( length1 != length2 )

// 尋找第乙個公共結點

listnode* node =

nullptr

;while

( p1 )

p1 = p1-

>next;

p2 = p2-

>next;

}return node;

}int

getlistlength

( listnode* p )

return length;}}

;

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

時間限制 1秒 空間限制 32768k 本題知識點 鍊錶 題目描述 include using namespace std struct listnode 方法一 先對齊結尾後,從前往後比較結點 class solution while p2 對齊尾部,從短的頭部開始比較 p1 phead1 p2 ...

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

題目 輸入兩個鍊錶,找出他們的第乙個公共結點 思路 公共結點是指結點值相同,結點指向的下乙個結點也相同。如果下乙個結點也相同,那麼下乙個結點的值記憶下乙個結點指向的結點也相同。即,從此公共結點開始,兩個鍊錶相遇,且之後的結點都是相同的,也就是重合了。因為結點位址相同,結點值相同,指向的下乙個節點的位...

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

因為兩個鍊錶不一定等長,所以先求出兩個鍊錶的長度。然後求差x,較長的鍊錶先走x部,然後開始比較兩個鍊錶,當遇到相同的結點則返回,一直未遇到則返回null public class listnode public class solution while l2 null if count1 count...