创建单链表输入单链表的数据元素以-1结束。利用原有结点实现单链表的就地逆置输出逆置后的单链表。【输入形式】1 2 3 4 5 6 7 8 9 10 -1【输出形式】10 9 8 7 6 5 4 3 2 1
class Node:
def __init__(self, data):
self.data = data
self.next = None
def create_linked_list():
head = Node(None)
current = head
while True:
data = int(input())
if data == -1:
break
node = Node(data)
current.next = node
current = node
return head.next
def reverse_linked_list(head):
current = head
prev = None
while current:
next_node = current.next
current.next = prev
prev = current
current = next_node
return prev
def print_linked_list(head):
current = head
while current:
print(current.data, end=' ')
current = current.next
if __name__ == '__main__':
head = create_linked_list()
head = reverse_linked_list(head)
print_linked_list(head)
说明:
输入数据时,每输入一个数就创建一个新的结点,并将其插入链表末尾。
就地逆置链表的基本思路是从头结点开始遍历链表,每遍历到一个结点,就将其指向前一个结点,最终得到逆置后的链表。
输出数据时,从头结点开始遍历链表,依次输出每个结点的数据元素即可。
原文地址: https://www.cveoy.top/t/topic/bIgi 著作权归作者所有。请勿转载和采集!