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

2022-08-24 01:33:11 字數 841 閱讀 1111

題目描述

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

解題思路:本題先分別遍歷兩個鍊錶一遍,求出兩個鍊錶的長度。並求出長度差值。然後讓長度長的鍊錶先走差值步,然後兩個鍊錶一起移動,直到兩鍊錶重合,返回第乙個結點。

注意:判斷條件while((plong != null) && (pshort != null) && (plong->val != pshort->val))

以上為正確的判斷條件,while((plong != null) && (pshort != null) && (plong!= pshort)這樣寫在牛客網上能通過,但是在本地編譯器,這樣判斷,只有當兩個鍊錶有乙個為空時才會跳出迴圈,不是兩鍊錶重合就跳出迴圈。重合時plong也不等於pshort

1/*2

struct listnode 8};

*/9class

solution

24else

2530

31for(int i=0;i)

3235

//兩煉表已對齊

36while((plong != null) && (pshort != null) && (plong->val != pshort->val))

3741 listnode *pfirstcommmonnode =plong;

42return

pfirstcommmonnode;

4344

}45 unsigned int getlistlength(listnode *phead)

4654

return

length;55}

56 };

劍指offer36 鍊錶的第乙個公共結點

輸入兩個鍊錶,找出它們的第乙個公共結點。注意因為傳入資料是鍊錶,所以錯誤測試資料的提示是用其他方式顯示的,保證傳入資料是正確的 思路1 雜湊 map有乙個特點,當使用陣列插入方式時,遇到相同的鍵值,會把原來的值給覆蓋,但是可以通過構造乙個pair來檢測是否插入成功。實現 class solution...

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

題目描述 輸入兩個鍊錶,找出它們的第乙個公共結點。注意因為傳入資料是鍊錶,所以錯誤測試資料的提示是用其他方式顯示的,保證傳入資料是正確的 實現 public class listnode public class solution return nhead1 分析 最直接的思路是遍歷一條鍊錶,並將每...

JZ36 劍指offer 兩個鍊錶的第乙個公共結點

題目描述 輸入兩個鍊錶,找出它們的第乙個公共結點。注意因為傳入資料是鍊錶,所以錯誤測試資料的提示是用其他方式顯示的,保證傳入資料是正確的 struct listnode class solution elseif ia else if tb elseif ib else return ta 思路 因...