輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。
反轉鍊錶是面試的基礎題,掌握是很有必要的。
我們採用迭代思想進行鍊錶反轉
首先我們定義三個指標,分別表示前乙個節點pre,當前節點cur,中間節點temp
每次迴圈時使得當前節點指向前一節點,然後節點後移進行下一反轉。
# -*- coding:utf-8 -*-
# class listnode:
# def __init__(self, x):
# self.val = x
# self.next = none
class solution:
# 返回listnode
def reverselist(self, phead):
if not phead:return none
pre = phead
cur = phead.next
temp = none
while cur:
temp = cur.next # temp記錄下一節點位置
cur.next = pre #當前節點指向前一節點
pre = cur #指標後移
cur = temp #指標後移
phead.next = none #原頭結點指向none
return pre
python 鍊錶反轉
definition of listnode class listnode object def init self,val,next none self.val val self.next next class solution param node n return the new head o...
python 反轉鍊錶
一 迭代實現 思路 將鍊錶的next節點儲存起來 temp cur.next 將鍊錶的next指標指向前乙個節點 cur.next pre 將鍊錶後移 pre cur cur temp 最後呼叫頭 return pre def f head listnode cur head pre none wh...
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...