劍指offer程式設計題 尋找兩個鍊錶公共結點

2021-08-21 09:32:35 字數 973 閱讀 1955

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

先分別計算兩個鍊錶的長度,然後對齊鍊錶(就是把比較長的那個鍊錶的指標先往前走幾步,以便趕上短的那個),然後同步遍歷兩個鍊錶,這樣肯定會同時到達公共結點。

public

class solution

int size1 = 0;

int size2 = 0;

listnode p1 = phead1,p2=phead2;

//計算鍊錶長度

while(p1!=null)

while(p2!=null)

//對齊鍊錶

p1 = phead1;p2=phead2;

int k = 0;

if(size1>size2)

}else

}//找公共節點

while(p1!=p2)

if(p1!=null&&p2!=null)else

}}

class solution 

int size1 =

0; int size2 =

0; listnode* p1 = phead1;

listnode* p2 = phead2;

//計算兩個鍊錶的長度

while(p1!=

null)

while(p2!=

null)

p1 = phead1;

p2 = phead2;

//對齊鍊錶

int k =

0; if(size1>size2)

}else

if(size1}

//查詢公共節點

while(p1!=p2)

if(p1!=

null

&&p2!=

null)else

}};

劍指Offer 程式設計題 合併兩個排序的鍊錶

輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。遞迴版本 非遞迴版本 public class solution else 把未結束的鍊錶連線到合併後的鍊錶尾部 if list1 null if list2 null return root.next 測試...

劍指Offer 程式設計題 合併兩個排序的鍊錶

輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。遞迴版本 非遞迴版本 public class solution else 把未結束的鍊錶連線到合併後的鍊錶尾部 if list1 null if list2 null return root.next 測試...

劍指offer 合併兩個鍊錶

輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。新建乙個節點作為head,依次遍歷兩個陣列 時間複雜度 o n 空間複雜度 o 1 coding utf 8 class listnode def init self,x self.val x self.ne...