24 反轉鍊錶 python

2021-10-04 23:45:34 字數 619 閱讀 9009

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

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。表示遍歷當前節...