劍指offer反轉鍊錶python

2022-06-20 04:39:11 字數 691 閱讀 1967

輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。

定義三個指標,phead, cur,forward

反轉的時候,cur.next指向phead,然後三個指標依次向後移動,具體過程看**。

#

-*- coding:utf-8 -*-

#class listnode:

#def __init__(self, x):

#self.val = x

#self.next = none

class

solution:

#返回listnode

defreverselist(self, phead):

#write code here

ifnot phead or

notphead.next:

return

phead

current =phead.next

forward =current.next

phead.next =none

while

current:

current.next =phead

phead =current

current =forward

ifforward:

forward =forward.next

return phead

劍指offer 反轉鍊錶

輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。方法1 將單鏈表儲存為陣列,然後按照陣列的索引逆序進行反轉。方法2 使用三個指標遍歷單鏈表,逐個鏈結點進行反轉。方法3 從第2個節點到第n個節點,依次逐節點插入到第1個節點 head節點 之後,最後將第乙個節點挪到新錶的表尾。public class l...

劍指offer 反轉鍊錶

輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。1.非遞迴 struct listnode class solution listnode ppre null listnode p phead listnode pnext null while p null else p pnext return p...

《劍指offer》 反轉鍊錶

輸入乙個鍊錶,反轉鍊錶後,輸出鍊錶的所有元素。之前錯誤的寫法,一直不明白 原因是移位的時候,pcurr移到下一位時,裡面的值已經變成反向指標了,所以不能成功移動,就迴圈巢狀進去了,所以還需要乙個變數pnext來儲存移位前的值。struct listnode class solution phead ...