以下是反转链表的代码。我的问题是这个代码导致错误,说列表没有下一个属性。然后我尝试使用iter()生成一个迭代。错误变为''list_iterator'对象没有属性'next''
method.next的用法是什么?
a=[6,5,4,3,2,1,]
iter_a=iter(a)
def reverse_iterative(head):
# no need to reverse if head is null
# or there is only 1 node.
if (head == None or
head.next == None):
return head
list_to_do = head.next
reversed_list = head
reversed_list.__next = None
while (list_to_do != None):
temp = list_to_do
list_to_do = list_to_do.next
temp.next = reversed_list
reversed_list = temp
return reversed_list
列表或迭代器上没有.next()
方法。你正在寻找next(...)
内置。
试试这个:
iterator = iter(list_to_do)
while True:
try:
item = next(iterator)
except StopIteration:
break
# do stuff with `item`
我假设你这样做是为了学习迭代器的内部结构,但如果你不这样做,请使用for循环:
for item in list_to_do:
pass
甚至更好,只需使用reversed()
:
reversed(list_to_do)