交叉合併兩個帶頭結點的鍊錶

2021-10-12 13:53:59 字數 936 閱讀 2651

今天在資料結構的mooc考試中,碰到一道演算法題。

題目如下:

寫這道題的時候,寫的比較差(明明以前寫過)

特此把以前寫過的**放上來,留作備份:

語言:c

#include

#include

void

merge()

;typedef

struct node

*linklist,lnode;

linklist creat_list()

r->next =

null

; r = l->next;

while

(r!=

null

)printf

("\n");

return l;

}void

compare

(linklist la,linklist lb)

while

(q!=

null)if

(sum1<=sum2)

if(sum1>sum2)

}void

merge

(linklist la,linklist lb,

int flag)

if(q==

null)if

(p==

null

&&q==

null)if

(flag ==1)

if(flag ==0)

} t->next =

null

; t = c->next;

while

(t!=

null)}

intmain()

兩個鍊錶的交叉

請寫乙個程式,找到兩個單鏈表最開始的交叉節點。注意事項 樣例下列兩個鍊錶 a a1 a2 c1 c2 c3 b b1 b2 b3在節點 c1 開始交叉。需滿足 o n 時間複雜度,且僅用 o 1 記憶體。這裡主要有兩個思路 方法一 對於僅判斷相交不相交的話 判斷最後乙個節點是否相同的辦法並不慢,如果...

合併兩個鍊錶

就是簡單的合併兩個鍊錶,這裡要求倆個鍊錶是有序的。比如 1 2 3 4 5 和 0 7 13 合併之後為 0 1 2 3 4 5 7 13 首先,簡單介紹一下思路,首先區遍歷倆個鍊錶,如果第乙個鍊錶的值小於等於第二個鍊錶的值,那麼將第乙個鍊錶的值插入乙個新的頭節點 鍊錶中,反之如果大於第二個鍊錶的值...

合併兩個鍊錶

1.問題描述description 將兩個公升序鍊錶合併為乙個新的公升序鍊錶並返回。新煉表是通過拼接給定的兩個鍊錶的所有節點組成的。示例 輸入 1 2 4,1 3 4 輸出 1 1 2 3 4 42.思路 將頭部較小的鍊錶的節點與另乙個鍊錶合併,遞迴解答。退出條件為 當乙個鍊錶為空時,返回另乙個鍊錶...