原題:
本題要求實現乙個函式,將兩個鍊錶表示的遞增整數序列合併為乙個非遞減的整數序列。
函式介面定義:
list merge
( list l1, list l2 )
;
其中list結構定義如下:
typedef
struct node *ptrtonode;
struct node
;typedef ptrtonode list;
/* 定義單鏈表型別 */
l1和l2是給定的帶頭結點的單鏈表,其結點儲存的資料是遞增有序的;函式merge要將l1和l2合併為乙個非遞減的整數序列。應直接使用原序列中的結點,返回歸併後的帶頭結點的煉表頭指標。
裁判測試程式樣例:
#include
#include
typedef
int elementtype;
typedef
struct node *ptrtonode;
struct node
;typedef ptrtonode list;
list read()
;/* 細節在此不表 */
void
print
( list l )
;/* 細節在此不表;空煉表將輸出null */
list merge
( list l1, list l2 )
;int
main()
/* 你的**將被嵌在這裡 */
輸入樣例:
313
5524
6810
輸出樣例:
123
4568
10null
null
題解思路:
list merge
( list l1, list l2 )
else
} p->next=h1?h1:h2;
//while迴圈結束意味著l1,l2其中乙個表的所有結點已經存入表x,運用三元運算子判斷h1是否指向null,從而將剩餘的結點連入到表x
l1->next=
null
; l2->next=
null
;return x;
}
合併2個有序鍊錶
將兩個公升序鍊錶合併為乙個新的公升序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 4思路1 public class mergetwolists public static listnode mergetwolists listn...
合併K個有序鍊錶
public class 023 mergeklists 堆中結點類 author luzhen work pc private static class node implements comparable override public int compareto node o 將k個有序鍊錶歸...
合併k個有序鍊錶
這是leetcode上面的一道程式設計題,題目如下 合併 k 個排序鍊錶,返回合併後的排序鍊錶。請分析和描述演算法的複雜度。示例輸入 1 4 5,1 3 4,2 6 輸出 1 1 2 3 4 4 5 6 利用遞迴分治的思想將k個有序鍊錶的合併問題,分解成多個合併兩個有序鍊錶的問題。比如示例中我們將三...