單鏈表操作之合併兩個單鏈表

2021-07-13 06:33:13 字數 1019 閱讀 7612

/*  本篇部落格為合併兩個單鏈表, 有序和無序都可以; 其中用到單鏈表的尾插和單鏈表的選擇排序;

**中大部分操作都在單鏈表基本操作詳解中介紹過,這裡就直接上**;

*/**:

#include#include#includetypedef int datatype;

typedef struct linknode

linknode,*plinknode;//結點結構體

typedef struct linklist

linklist ,*plinklist;//鍊錶

void initlinklist(plinklist plist)

//初始化列表

void pushback(plinklist plist,datatype x)

assert(plist);

cur = plist ->phead ;

newnode ->data = x;

newnode ->next = null;

if(cur == null)

while(cur)

pvr->next = newnode ;

}//尾插

void printlist(plinklist plist)

printf("over\n");

}//列印

void selectsort(plinklist plist)//選擇排序單鏈表

} }}plinknode merge(plinklist plist1, plinklist plist2)

//合併兩個單鏈表,就只需要找到乙個的尾將另外乙個鏈上去就好了;

while(cur && cur->next )

cur->next = plist2 ->phead ;

return plist1 ->phead ;//最後返回第乙個鍊錶的頭指標;

}void test()

int main()

end!

合併兩個有序單鏈表

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