在刷leetcode題時,鍊錶的反轉可分三種情況:一、反轉整個鍊錶1、反轉整個鍊錶
2、反轉其中連續的一部分
3、分段反轉
leetcode206. 反轉鍊錶
示例:輸入: 1->2->3->4->5->null
輸出: 5->4->3->2->1->null
/**
* definition for singly-linked list.
* struct listnode
* };
*/class
solution
return cur;}}
;
二、反轉單鏈表其中連續的一部分
leetcode92. 反轉鍊錶 ii
反轉從位置 m 到 n 的鍊錶。請使用一趟掃瞄完成反轉。說明:1 ≤ m ≤ n ≤ 鍊錶長度。
示例:輸入: 1->2->3->4->5->null, m = 2, n = 4
輸出: 1->4->3->2->5->null
/**
* definition for singly-linked list.
* struct listnode
* };
*/class
solution
mnode-
>next=cur;
return dummy-
>next;}}
;
三、分段反轉
給你乙個鍊錶,每 k 個節點一組進行翻轉,請你返回翻轉後的鍊錶。可使用k 是乙個正整數,它的值小於或等於鍊錶的長度。
如果節點總數不是 k 的整數倍,那麼請將最後剩餘的節點保持原有順序。
示例:給你這個鍊錶:1->2->3->4->5
當 k = 2 時,應當返回: 2->1->4->3->5
當 k = 3 時,應當返回: 3->2->1->4->5
二、反轉單鏈表其中連續的一部分來求解:
單鏈表實現反轉的三種方法
單鏈表的操作是面試中經常會遇到的問題,今天總結一下反轉的幾種方案 1 兩兩對換 2,放入陣列,倒置陣列 3,遞迴實現 如下 include include typedef struct node node,pnode pnode createnode phead pnext null int n p...
單鏈表逆序(三種方式)
三種方式實現單鏈表的逆序,分別是頭結點插入,對稱交換和利用堆疊來實現。三種方式分別是出於空間和時間的考慮來實現的,詳見注釋。public class linkedlist public node object data,node next public node getnext public voi...
C 演算法之 反轉單鏈表
題目 定義乙個函式,輸入乙個鍊錶的頭結點,反轉該鍊錶並輸出反轉後鍊錶的頭結點,鍊錶節點定義為 struct listnode int m nvalue listnode m pnext 演算法思路 鍊錶 1 2 3 4 5 建立乙個 pprev節點,而且為空節點 pprev null 再建立乙個節點...