題目:有兩個有序鍊錶,各自內部是有序的,但是兩個鍊錶之間是無序的
思路:假設兩個有序鍊錶分別為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 ...