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

2021-10-02 09:14:48 字數 651 閱讀 6603

解題思路:

要找到相交結點,首先計算出兩個鍊錶的長度,先讓長的鍊錶走abs(lena-lenb)步,然後再同步進行遍歷,如果兩個結點相等則返回true否則為false。

/**

* definition for singly-linked list.

* struct listnode ;

*/ typedef struct listnode node;

struct listnode *getintersectionnode(struct listnode *heada, struct listnode *headb)

while(cur2)

int gap = abs(lena - lenb);

node* longlist = heada,*shortlist = headb;

if(lena < lenb)

while(gap--)

while(shortlist && longlist)

else

}return null;

}

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

問題 輸入兩個鍊錶,找出它們的第乙個公共結點。分析 第一反應是蠻力法,這是沒認真思考才想到的方法。仔細分析就會發現,這兩個鍊錶有著共同的尾部,在兩個煉表達到第乙個公共結點後,之後每個結點都是相同的,拓撲形狀呈現為y型結構。思路一 首先遍歷兩個鍊錶,得到兩個鍊錶的長度,並得到兩個鍊錶的長度差。然後進行...

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

題目描述 輸入兩個鍊錶,找出它們的第乙個公共結點。分析 關鍵 公共部分長度一樣的,讓不公共的部分同步往前走就可以了。也就是長的先走,走到剩餘鍊錶長度和另乙個鍊錶長度相同的地方,兩個鍊錶同步走。class solution def findfirstcommonnode self,phead1,phe...

兩個單向鍊錶,找出它們的第乙個公共結點

package structure.list import structure.list.node.lnode 01 題目 兩個單向鍊錶,找出它們的第乙個公共結點 author toy public class first commonnode 逐個考察 o m n param head1 para...