(劍指offer)面試題24 反轉鍊錶

2021-10-05 19:02:15 字數 823 閱讀 1967

定義乙個函式,輸入乙個鍊錶的頭節點,反轉該鍊錶並輸出反轉後鍊錶的頭節點。

示例:

輸入:1

->2-

>3-

>4-

>5-

>null

輸出:5

->4-

>3-

>2-

>1-

>null

雙指標法:定義兩個指標cur和pre,進行區域性翻轉,然後向前移動。

遞迴法:一直遞迴進行對head.next的翻轉。

public

static

class

listnode

}/**

* 遞迴法

* @param head 頭結點

* @return

*/public

static listnode reverselist1

(listnode head)

listnode re =

reverselist1

(head.next)

;//遞迴

head.next.next = head;

head.next = null;

return re;

}/**

* 雙指標法

* @param head 頭結點

* @return

*/public

static listnode reverselist2

(listnode head)

return cur;

}

劍指offer 面試題24 反轉鍊錶

完整 位址 定義乙個函式,輸入乙個鍊錶的頭結點,反轉該鍊錶並輸出反轉後鍊錶的頭結點 很簡單,單純考察 的魯棒性 要針對區分成以下三種情況處理 1.輸入的煉表頭指標為null 2.輸入的鍊錶只有乙個節點 3.輸入的鍊錶有多個節點 正常情況 public static class listnode pu...

劍指offer 面試題24 鍊錶反轉

題目 輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。思路 需要定義三個節點,當前節點pnode,前一節點ppre,和後一節點pnext。要將當前節點的下一節點pnode next用下一節點儲存起來,避免在反轉時發生鍊錶斷裂。然後將當前節點指向前一節點,然後將當前節點的指標移到下一節點,前一節點和下一...

《劍指offer 面試題24 反轉鍊錶》

劍指offer 面試題24 反轉鍊錶 註明 僅個人學習筆記 反轉鍊錶 public class reverselist24 鍊錶節點唯一時,返回頭節點 if head.next null node preversehead null node pnode head node prenode null...