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

2022-07-15 07:06:11 字數 623 閱讀 3103

// test02.cpp : 定義控制台應用程式的入口點。

//

#include "stdafx.h"

#includeusing namespace std;

struct listnode

};class solution

while (p2!=null)

if (count1 > count2) //如果鍊錶1的元素個數多餘鍊錶2中的元素個數

while (phead1!=null&&phead2!=null)//必須保證兩個鍊錶都不為空

else

} }

else//如果鍊錶2的元素個數多餘鍊錶1中的元素個數

while (phead1 != null&&phead2 != null)

else}}

return p;

}};int main()

//cout << endl;

//while (p2 != null)

// cout << "第乙個公共的節點是:" return 0;

}分析:先算出長的序列比短的序列多n個,然後長的序列先走n步,然後長序列和短序列一起走,直到兩個序列的值相等即可

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

思路 獲取兩個鍊錶的長度,求的長度差n,讓長鍊表先遍歷n次,然後長鍊表和短鍊錶同時遍歷,當長鍊錶和短鍊錶相等時,即為第一公共結點。o m1 m2 public class findfirstcomnode int len1 getnodelength root1 int len2 getnodele...

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

題目 輸入兩個鍊錶,找出他們的第乙個公共結點。方法1 分別把兩個鍊錶的節點放入兩個棧裡,這樣兩個鍊錶的尾結點就位於兩個棧的棧頂,接下來比較兩個棧頂的結點是否相同。如果相同,則把棧頂彈出接著比較下乙個棧頂,直到找到最後乙個相同的結點。時間和空間複雜度都是o m n 方法2 先遍歷兩個鍊錶得到它們的長度...

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

輸入兩個鍊錶,找出它們的第乙個公共結點。分析 如果兩個單向鍊錶有公共的結點,那麼這兩個鍊錶從某乙個結點開始,他們的next結點都指向同乙個結點,但由於是單向鍊錶的結點,每個結點都只有乙個next結點,因此從第乙個公共結點開始,之後他們所有結點都是重合的,不可能出現分支。public listnode...