下面是一个用Python编写链表的示例代码:
# 定义链表节点类
class ListNode:
def __init__(self, value):
self.val = value
self.next = None
# 定义链表类
class LinkedList:
def __init__(self):
self.head = None
# 在链表末尾添加新节点
def append(self, value):
new_node = ListNode(value)
if not self.head:
self.head = new_node
else:
curr_node = self.head
while curr_node.next:
curr_node = curr_node.next
curr_node.next = new_node
# 反转链表
def reverse(self):
prev = None
curr = self.head
while curr:
next_node = curr.next
curr.next = prev
prev = curr
curr = next_node
self.head = prev
# 打印链表元素
def print_list(self):
curr_node = self.head
while curr_node:
print(curr_node.val, end=" ")
curr_node = curr_node.next
print()
# 创建一个链表
my_list = LinkedList()
my_list.append(1)
my_list.append(2)
my_list.append(3)
my_list.append(4)
# 打印原始链表
print("原始链表:")
my_list.print_list()
# 反转链表
my_list.reverse()
# 打印反转后的链表
print("反转后的链表:")
my_list.print_list()
以上代码实现了一个链表类LinkedList
,其中包含append
方法用于在链表末尾添加新节点,reverse
方法用于反转链表,print_list
方法用于打印链表元素。
在代码示例中,我们创建了一个包含数字1、2、3、4的链表,并将其打印出来。然后使用reverse
方法反转链表,并再次打印反转后的链表。
输出结果为:
原始链表:
1 2 3 4
反转后的链表:
4 3 2 1
这个示例代码演示了如何编写链表类以及如何反转链表。你可以根据自己的需要进行修改和扩展。