第一行一个正整数n(1<=n<=100000)
第二行n个正整数a1,a2,...,an(1 <= ai <=100000),表示链表顺序的结点值。
输出一行,n个数,表示反转后链表依次的结点值。
10 9 10 6 6 8 7 5 7 7 5
5 7 7 5 7 8 6 6 10 9
Python3,n没用
class Node:
def __init__(self, val, next=None):
self.val = val
self.next = next
n = int(input())
nums = input().split()
head = Node('head')
tail = head
for num in nums:
node = Node(num)
tail.next = node
tail = node
def inverse(head: Node) -> Node:
'''给定链表第一个有效节点,反转单链表'''
if head is None or head.next is None:
return
prev, curr, next = None, head, None
while curr is not None:
next = curr.next
curr.next = prev
prev = curr
curr = next
return prev
tail = head.next
head.next = inverse(head.next)
node = head.next
while node is not tail:
print(node.val, end=' ')
node = node.next
else:
assert tail.val == node.val
print(tail.val, end='')