兩個簡單的鍊錶操作

2021-04-27 11:00:10 字數 376 閱讀 8929

談起鍊錶,還是原來在學校裡上《資料結構》的時候,自己動手寫了一套完整的**,現在想起來都不知道丟**去了。不過那個時候寫的東西都是些基本的鍊錶操作,昨天偶然碰到了兩個新鮮一點的:乙個是將鍊錶反向,另外乙個稍微難點,合併兩個已經排好序的鍊錶,當然要求合併後的鍊錶仍然有序呀!

下面給出鍊錶的基本資料結構:

另外再加乙個新增節點的操作,這樣方便驗證接下來要實現的功能。

新增節點:

顯示整個鍊錶:

銷毀整個鍊錶:

第乙個操作是鍊錶的反向,這個比較簡單:

第二個是合併已經排好序的鍊錶,我用了兩種方法來實現這個功能,遞迴和普通的方式:

遞迴實現如下:

非遞迴實現如下:

下面是一段簡單的測試程式:

21 合併兩個有序鍊錶 簡單

菜鳥解答 definition for singly linked list.struct listnode struct listnode mergetwolists struct listnode l1,struct listnode l2 else scan tmp scan tmp next...

兩個相交鍊錶

兩個單鏈表相交的一系列問題 題目 在本題中,單鏈表可能有環,也可能無環。給定兩個單鏈表的頭節點 head1和head2,這兩個鍊錶可能相交,也可能 不相交。請實現乙個函式,如果兩個鍊錶相交,請返回相交的第乙個節點 如果不相交,返回null 即可。要求 如果鍊錶1 的長度為n,鍊錶2的長度為m,時間複...

合併兩個鍊錶

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