主要三个指针,上一个pre,当前cur,和下一个next,cur.next指向pre,然后所有指针向后移动一位
pre = head
cur = pre.next
pre.next = None
next = cur.next
while next.next is not None:
cur.next = pre
pre = cur
cur = next
next = next.next
next.next = cur
cur.next = pre
head = next
return head
class node:
def __init__(self, value):
self.value = value
self.next = None
def reverse(head):
if head is None or head.next is None or head.next.next is None:
return head
if head.next.next.next is None:
t = head.next.next
t.next = head.next
head.next.next = None
head.next = t
return head
pre = head
cur = pre.next
pre.next = None
next = cur.next
while next.next is not None:
cur.next = pre
pre = cur
cur = next
next = next.next
next.next = cur
cur.next = pre
head = next
return head
def out(head):
if head is not None:
while head.next is not None:
print(head.value)
head = head.next
print(head.value)
else:
print(None)
if __name__ == "__main__":
head = node(None)
pre = head
for i in range(6):
pre.next = node(i)
pre = pre.next
out(head)
head = reverse(head)
out(head)