定義乙個函式,輸入乙個鍊錶的頭節點,反轉該鍊錶並輸出反轉後鍊錶的頭節點。
示例:
輸入: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...