解題思路:
要找到相交結點,首先計算出兩個鍊錶的長度,先讓長的鍊錶走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...