題目:定義乙個函式,輸入乙個鍊錶的頭節點,反轉該鍊錶並輸出反轉後鍊錶的頭節點。
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
rear.next=none
return p
front = p.next
rear.next=none
while front:
p.next=rear
rear = p
p = front
front = front.next
p.next=rear
return p
注:分三種情況:
1、煉表頭節點為空或只有乙個節點,此時直接返回頭節點即可
2、鍊錶只有兩個節點,此時只要反轉一次,然後返回尾結點即可
3、大於等於3個節點,使用三個指標分別指向當前節點,前乙個節點和後乙個節點,每次前進一步,反轉後兩個指標所指的節點,最後返回尾結點
JZ24 反轉鍊錶
原題鏈結 定義乙個函式,輸入乙個鍊錶的頭節點,反轉該鍊錶並輸出反轉後鍊錶的頭節點。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null限制 0 節點個數 5000 注意 本題與leetcode主站 206 題相同 思路1 雙指標 思路2 遞迴 遞迴的兩個條件 思路1 雙指標 ...
指 Offer24鍊錶 反轉鍊錶
題目 定義乙個函式,輸入乙個鍊錶的頭節點,反轉該鍊錶並輸出反轉後鍊錶的頭節點。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null 限制 0 節點個數 5000 注意 本題與主站 206 題相同 分析 反轉單鏈表主要是將指標反向,主要有兩種方式,迭代和遞迴。思路 1 遞迴 2...
劍指 Offer 24 反轉鍊錶 python
題目鏈結 題目描述 定義乙個函式,輸入乙個鍊錶的頭節點,反轉該鍊錶並輸出反轉後鍊錶的頭節點。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null 解題思路 需要三個指標 1.乙個保留當前節點的next,防止鍊錶斷裂 2。乙個表示當前節點的前驅節點,用於反轉 3。表示遍歷當前節...