知識點/陣列:鍊錶
題目描述
輸入兩個鍊錶,找出它們的第乙個公共結點。
思路:
蠻力法:在第乙個鍊錶遍歷每個節點,每遍歷到乙個節點,就在第二個鍊錶上遍歷每個節點。如果在第二個鍊錶上有乙個節點和第二鍊錶上的節點一樣,則說明兩個鍊錶在這個節點上重合,於是找到了他們的公共節點。時間複雜度:o(m*n);
觀察如果兩個鍊錶有重複的節點,那麼公共節點出現在鍊錶的尾部。如果我們從兩個鍊錶的尾部開始比較,那麼最後乙個相同的節點就是我麼你要找的節點。
/*
public class listnode
}*/public class solution
int count1=0;
listnode p1= phead1;
while(p1!=null)
int count2=0;
listnode p2= phead2;
while(p2!=null)
int result=count1-count2;
if(result>0)
while(phead1!=phead2)
return phead1;
}if(result<=0)
while(phead1!=phead2)
return phead1;
}return null;
}}
6 劍指offer 翻轉鍊錶
class solution 如果head為null的時候,pre就為最後乙個節點了,但是鍊錶已經反轉完畢,pre就是反轉後鍊錶的第乙個節點 直接輸出pre就是我們想要得到的反轉後的鍊錶 return pre 第二種方法是 遞迴方法 struct listnode class solution 2 ...
劍指offer 鍊錶
單向鍊錶的結構定義 typedef int datatype struct listnode 問題1 往鍊錶的末尾新增乙個結點 給定頭結點,往末尾插入乙個結點 void insertnode listnode head,datatype key listnode p head while p nex...
劍指offer 鍊錶
鍊錶 鍊錶是一種動態資料結構 struct listnode 往鍊錶的末尾新增乙個節點的c 程式如下 void addtotail listnode phead,int value 注意第乙個引數phead是乙個指向指標的指標。當我們往乙個空鍊錶插入乙個結點時,else pnode m pnext ...