使用 3 个指针反转链接列表



使用 3 指针反转链接列表? 不明白问题出在哪里? 请也建议任何其他迭代解决方案。 使用 3 指针反转链接列表? 不明白问题出在哪里? 请也建议任何其他迭代解决方案。

结果应该是87654321(与链表相反( 但目前输出为 1 我认为反向函数指针存在问题

反转链接列表

class Node:
def __init__(self,data):
self.data=data
self.next=None
class LinkedList:
def __init__(self):
self.head=None
def push(self,data):
new_node=Node(data)
new_node.next=self.head
self.head=new_node
def printlist(self):
temp=self.head
print()
while temp:
print(temp.data,end=' ')
temp=temp.next
def append(self, new_data): 
new_node = Node(new_data) 
if self.head is None: 
self.head = new_node 
return
last = self.head 
while (last.next): 
last = last.next
last.next =  new_node
def reverse(self):
prev=None
current=self.head
nnext=current.next
while nnext:
current.next=prev
prev = current
current = nnext
nnext=nnext.next
current.next=prev
if __name__=='__main__':
llist=LinkedList()
llist.append(1)
llist.append(2)
llist.append(3)
llist.append(4)
llist.append(5) 
llist.append(6)
llist.append(7)
llist.append(8)
llist.printlist()
llist.reverse()
llist.printlist()

好吧,您的代码通常工作正常。你错过的是在反向方法的末尾分配self.head。只需将此行self.head = current添加到反向的末尾即可正常工作。

相关内容

  • 没有找到相关文章

最新更新