開心IT面試題 兩個有序鍊錶的合併

2022-09-23 23:48:13 字數 609 閱讀 9440

題目:有兩個有序鍊錶,各自內部是有序的,但是兩個鍊錶之間是無序的

思路:假設兩個有序鍊錶分別為first和second。建立兩個單鏈表p1, p2。分別從煉表頭開始遍歷,比較p1->data和p2->data,若p1->data >= p2->data,取p2,p1=p1->next;否則取p1,p2=p2->next。當其中乙個鍊錶遍歷完後,將另乙個鍊錶的剩下部分賦給結果。

**:node *merge_linklist(node *first, node *second)

if(second == null)

node *p1, *p2, *result, *temp;

p1 = first;

p2 = second;

result = null;

if(p1->data >= p2->data)

else

temp = result;

while(p1 != null && p2 != null)

else

} if(p1 != null)

if(p2 != null)

return result;

}

面試題 合併兩個有序的鍊錶

題目 輸入兩個遞增有序的鍊錶,合併這兩個鍊錶後,使新鍊錶中的結點 也是遞增有序的。遞迴方式實現兩個有序鍊錶的合併 struct listnode listnode merge listnode phead1,listnode phead2 else if phead2 null listnode m...

劍指Offer 面試題17 合併兩個有序鍊錶

輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。分析 這道題有點類似於面試題4 替換空格中的擴充套件題目 兩個有序陣列合併。大體思路上是一致的,很類似,分別遍歷兩個鍊錶,將小的結點鏈結到新煉表表尾。後期處理有點區別就是,合併陣列在迴圈結束後,需要用whil...

鏈表面試題 合併兩個有序鍊錶, 合併後依然有序

合併兩個有序鍊錶 slistnode mergeorderedlist slistnode p1first,slistnode p2first else else else 乙個鍊錶為空了 if cur1 null if cur2 null return result void testmerge ...