[原題鏈結]定義乙個函式,輸入乙個鍊錶的頭節點,反轉該鍊錶並輸出反轉後鍊錶的頭節點。
示例:
輸入: 1->2->3->4->5->null
輸出: 5->4->3->2->1->null
限制:0 <= 節點個數 <= 5000
注意:本題與leetcode主站 206 題相同:
思路1:雙指標
思路2:遞迴
遞迴的兩個條件:
思路1:雙指標
# definition for singly-linked list.
# class listnode:
# def __init__(self, x):
# self.val = x
# self.next = none
class
solution
:def
reverselist
(self, head: listnode)
-> listnode:
pre, cur =
none
, head #定義指標
while cur:
cur.
next
, pre, cur = pre, cur, cur.
next
return pre
思路2:遞迴
# definition for singly-linked list.
# class listnode:
# def __init__(self, x):
# self.val = x
# self.next = none
class
solution
:def
reverselist
(self, head: listnode)
-> listnode:
if(head ==
none
or head.
next
==none):
return head
cur = self.reverselist(head.
next
) head.
next
.next
= head #head的下乙個節點指向head
head.
next
=none
return cur
24 反轉鍊錶 python
題目 定義乙個函式,輸入乙個鍊錶的頭節點,反轉該鍊錶並輸出反轉後鍊錶的頭節點。def reverse list head if not head or not head.next return head rear head p head.next if p.next none p.next rear...
指 Offer24鍊錶 反轉鍊錶
題目 定義乙個函式,輸入乙個鍊錶的頭節點,反轉該鍊錶並輸出反轉後鍊錶的頭節點。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null 限制 0 節點個數 5000 注意 本題與主站 206 題相同 分析 反轉單鏈表主要是將指標反向,主要有兩種方式,迭代和遞迴。思路 1 遞迴 2...
面試題24 反轉鍊錶
反轉鍊錶 定義乙個函式,輸入乙個鍊錶的頭結點,反轉該鍊錶並輸出反轉後鍊錶的頭結點。分析 為了正確的反轉乙個鍊錶,需要調整鍊錶中指標的方向,如下圖,我們在調整i的next指標時,除了需要知道節點i本身,還需要知道i的前乙個節點h,因為我們需要把i的next指向節點h,同時,我們還需要先儲存i的下乙個節...