單鏈表的反轉 python實現例項

2022-08-11 19:15:11 字數 1060 閱讀 2453

單鏈表反轉實現

1、遞迴實現

根據遞迴,遞迴到最後乙個節點(條件為head3為非空,其下乙個指向為空),將其next指向前乙個結點,前乙個結點的指向為none。

遞迴,head為原鍊錶的頭結點,newhead為反轉後鍊錶的頭結點

if head is

none:

return

if head.next is

none:

newhead =head

else

: newhead =recurse(head.next, newhead)

head.next.next =head

head.next =none

return newhead

注釋:原來鍊錶為

head指向為1,phead1=head.next   phead2=phead1.next    phead3=phead2.next

a、遞迴最後實現newhead=phead3

b、回到上次遞迴的結束下方

2、迴圈實現

def

reverselist(self, phead):

if phead is none or phead.next is

none:

return

phead

pre =none

cur =phead

h =phead

while

cur:

h =cur

tmp =cur.next

cur.next =pre

pre =cur

cur =tmp

return h

python如何實現單鏈表的反轉

如下 coding utf 8 classwww.cppcns.com node def init self,data none,next none self.data data self.next next def reserver link pre link cur link.next pre....

實現單鏈表反轉

實現單鏈表反轉主要思路 需要注意的是 鍊錶在使用結束後,需要釋放記憶體 如果是new的要delete,malloc的要free 具體 如下所示 包含遞迴和非遞迴兩種方法 pragma once ifndef list h define list h include using namespace s...

單鏈表反轉 python版

如下 class node object def init self,elem,next none self.elem elem self.next next def reverselist head if head none or head.next none 若煉表為空或者僅乙個數就直接返回 r...