鍊錶 反轉 合併

2021-06-20 04:49:35 字數 539 閱讀 3569

關於鍊錶的基礎知識,請參考我的其他文件:

在實現以下操作之前,還是首先定義基本資料型別:

[cpp]view plain

copy

typedef

struct

node  

linknode, *linklist;  

(1)鍊錶的反轉

基本思想:利用乙個輔助指標(tmp),用於儲存當前指標指向的下乙個結點;然後,反轉當前結點的指標指向,使其指向前乙個結點;最後,利用輔助指標向後遍歷。

[cpp]view plain

copy

void

reverselist(linklist &head)  

head->next = null;  //將原頭結點的指標,指向null,作為反轉後鍊錶的尾指標

head = pre;   //此語句不能丟,一定要記得將頭結點改變位置

}  

(2)(3)合併兩個有序鍊錶

反轉合併鍊錶

反轉鍊錶 node reverselist node h return newh 合併 將兩個有序鍊錶合併 迴圈實現 listnode hebing listnode head1,listnode head2 p2結點資料小 將last指向p2結點,last和p2分別後移 else 當有乙個鍊錶結束...

合併兩個排序的鍊錶 反轉鍊錶

合併兩個排序的鍊錶 輸入兩個遞增排序的鍊錶,合併這兩個鍊錶並使新鍊錶中的節點仍然是遞增排序的。示例1 輸入 1 2 4,1 3 4輸出 1 1 2 3 4 4 public listnode mergetwolists listnode l1,listnode l2 else r r.next r....

鍊錶 反轉鍊錶

問題 兩兩交換鍊錶中的節點 問題 k 個一組翻轉鍊錶 問題鏈結 利用棧先進後出的特性,遍歷鍊錶,將每個結點加入棧中,最後進行出棧操作,先出棧的結點指向臨近的後出棧的結點。definition for singly linked list.struct listnode class solution ...