【发布时间】:2020-01-13 14:19:45
【问题描述】:
我想将链表head 反转为一个新的反转点赞列表。我可以反转列表,但这样做,原始列表 head 也会受到影响,head.next 变为 None。
def reverse(head):
prev = None
current = head
while(current is not None):
next = current.next
current.next = prev
prev = current
current = next
最初:head :- 1-->2-->3-->4-->None
反转后:
头:-1-->None
上一页 :- 4-->3-->2-->1-->None
我基本上希望head是1-->2-->3-->4-->None。
这里是链表反转的代码:-
class Node:
def __init__(self, data):
self.data = data
self.next = None
def print_llist(head):
while (head):
print(head.data)
head = head.next
def reverse(head):
prev = None
current = head
while (current is not None):
next = current.next
current.next = prev
prev = current
current = next
return prev
llist = Node(1)
second = Node(2)
third = Node(3)
fourth = Node(4)
llist.next = second
second.next = third
third.next = fourth
# print original list
print("Original:")
print_llist(llist)
# print reversed list
print("Reversed")
print_llist(reverse(llist))
# print original list
print("Original:")
print_llist(llist)
输出:-
Original:
1
2
3
4
Reversed
4
3
2
1
Original:
1
预期输出:-
Original:
1
2
3
4
Reversed
4
3
2
1
Original:
1
2
3
4
【问题讨论】:
-
你能把你的链表代码贴出来吗?
-
嗨,@MasonCaiby 感谢您的回复。我已经用代码更新了问题。
标签: python linked-list singly-linked-list