Python中反转链表的方法



我尝试了以下代码来反转链表,但得到了一个无限循环作为错误。你能告诉我这种方法出了什么问题吗。

def reverse(self):
temp  = curr = self.head         #curr refers to the next node
prev = None
while temp:
curr = temp.next    #curr goes to the next node of temp           
curr.next = temp    #curr node points to its previous node temp
prev = temp         #prev moves to the next node
temp = curr
#self.head.next = None 
self.head = prev

您的方法中存在逻辑错误。

在while循环的第一次循环结束时:

  • curr(列表中的第二个元素(
  • curr.next(列表中的第一个元素(
  • temp=curr=(列表中的第二个元素(

在while循环的第二次循环中。您希望使用temp.next到达第三个元素。这是错误的,因为:

  • temp.next=curr.next=(列表中的第一个元素(

让您在第一个和第二个元素之间无限循环,没有退出条件。

我会让你来想办法解决这个问题。

(提示:应将温度分配给第一遍中的???元件(

相关内容

  • 没有找到相关文章

最新更新