劍指OFFER 合併兩個有序的鍊錶

2022-05-26 06:18:12 字數 736 閱讀 2830

輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。

再做這道題就是想不起來書上怎麼做的了,但是最近看stl裡面全是這種基礎的合併啊,比較啊。就算不會也看會了。

迴圈我用了4個指標。p和q分別指向兩個鍊錶當前需要比較的元素,l和k分別代表「新」的鍊錶的舊節點和新節點,防止斷了。

每次新比較的結果給k,l代表之前的節點。

迴圈:

/*

struct listnode

};*/

class

solution

listnode *p=phead1,*q=phead2;

phead1= phead1->valval?phead1:phead2;

listnode *k=phead1,*l=phead1;

while(p!=null&&q!=null)

else

l->next=k;

l=k;

}if(q==null)

l->next=p;

if(p==null)

l->next=q;

return

phead1;

}};

遞迴:

public

class

solution

else

return

mergehead; }

}

劍指offer 合併兩個有序鍊錶

依次比較兩個鍊錶的首結點,取較小的的結點放到第三個鍊錶尾,同時移動較小節點所在鍊錶的指標指向下乙個節點。步驟一結果會有乙個鍊錶先遍歷結束 第三個鍊錶尾結點指向剩餘未遍歷結束的鍊錶 返回第三個鍊錶首結點 struct listnode class solution else merlist merli...

劍指offer 合併兩個有序鍊錶

題目描述 輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。參考思路 逐個比較兩個鍊錶的第乙個結點,將結點值小的那個結點新增到乙個新的鍊錶上。直到最後乙個兩個鍊錶都合併到新的鍊錶上結束。參考 public class listnode public clas...

劍指offer 合併兩個有序鍊錶 python

方法一 迭代 簡化 方法二 遞迴 題目 將兩個有序鍊錶合併為乙個新的有序鍊錶並返回。題目位置 位置 示例 輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4class solution object def mergetwolists self,l1,l2 type l1 listnode ...