單鏈表反轉實現
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、迴圈實現
defreverselist(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...