關於鍊錶的基礎知識,請參考我的其他文件:
在實現以下操作之前,還是首先定義基本資料型別:
[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 ...