Python 单链表就地逆置算法实现
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/nbv1 著作权归作者所有。请勿转载和采集!