合併兩個有序單鏈表

2021-07-09 19:30:28 字數 674 閱讀 2891

#include

using namespace std;

typedef struct nodenode,*linklist;

void creatlist(linklist & l)

void insert(int n,node*p)

void show(linklist & l)

cout num < head2->next->num)

else

//遍歷兩個鍊錶,將較小的值插入當前鍊錶中:

node * p = head;

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

else

}//將非空的鍊錶接在後面:

if(p1!=null)

p->next = p1;

if(p2!=null)

p->next = p2;

return head;

}int main()

cout <

typedef 把 node和*linklist  定義成了struct node 型別的了,也就是說在下面碰到 node和linklist 都可以用struct node來代替,

所以,node的作用就是告訴編譯器它代表名稱為node的結構,*linklist的作用就是告訴編譯器它代表名稱為node的結構指標

合併兩個有序單鏈表

思路 第一種 遞迴法 這個方法不好想,遞過去的時候做的事情是找到新的單鏈表的下乙個節點,歸的時候做的是告訴每個節點的next是什麼繫結關係,帶入資料就能知道怎麼回事 public listnode merge listnode a,listnode b if b null listnode newh...

合併兩個有序單鏈表

題目 給定兩個有序單鏈表的頭節點head1和head2,請合併兩個有序鍊錶,合併後的鍊錶依然有序,並返回合併後的鍊錶的頭節點。例如 0 2 3 7 null 1 3 5 7 9 null 合併後的鍊錶為 0 1 2 3 3 5 7 7 9 null 本題考察鍊錶基本操作 關鍵是能寫出時間複雜度o m...

合併兩個有序的單鏈表

public node merge node head1 node head2 node head head1.value head2.value head1 head2 確定合併的頭結點 node cur1 head head1 head1 head2 cur1引用的是合併頭結點所在的鍊錶 nod...