合併兩個有序的單鏈表

2021-08-03 18:48:51 字數 990 閱讀 7789

合併兩個有序的單鏈表:

1.建立兩個有序的單鏈表;

2.建立第三個鍊錶來存放合併後的有序鍊錶;

#include 

using namespace std;

struct listnode;

class createlist

void push(int _value)

else

tp->next = temp;

temp->value =_value;

temp->next = null;

} }node* combine(node* ph1, node* ph2)

if (ph2 == null)

node* newhead = null;

node* tail = null;

if (ph1->value < ph2->value)

else

tail = newhead;

while (ph1 && ph2)

else

tail = tail->next;

} if (ph1)

if (ph2)

return newhead;

} void printlist(node* _phead)

cout<<"null";

} node* pfristnode()

private:

node* phead;

};int main()

{ createlist l;

l.push(1);

l.push(2);

l.push(3);

l.push(4);

l.printlist(l.pfristnode());

cout<

這裡需要指出的是,給定測試的兩個單鏈表要有序,如果無需則需要排序,將單鏈表變的有序。

合併兩個有序單鏈表

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 ne...

合併兩個有序單鏈表

思路 第一種 遞迴法 這個方法不好想,遞過去的時候做的事情是找到新的單鏈表的下乙個節點,歸的時候做的是告訴每個節點的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...