链表(Linked List)是一种常见的数据结构,它由一系列节点(Node)组成,每个节点包含数据部分和一个指向下一个节点的指针。链表的优点在于它允许在任何位置高效地插入和删除元素,而不需要移动其他元素。
以下是一个使用Python实现的函数,用于在单链表的指定索引处插入元素:
class Node:
def __init__(self, data):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def insert_at_index(self, index, data):
new_node = Node(data)
if index == 0:
new_node.next = self.head
self.head = new_node
return
current = self.head
previous = None
current_index = 0
while current and current_index < index:
previous = current
current = current.next
current_index += 1
if current_index == index:
new_node.next = current
previous.next = new_node
else:
raise IndexError("Index out of range")
def print_list(self):
current = self.head
while current:
print(current.data, end=" -> ")
current = current.next
print("None")
# 示例用法
llist = LinkedList()
llist.head = Node(1)
second = Node(2)
third = Node(4)
llist.head.next = second
second.next = third
print("原始链表:")
llist.print_list()
llist.insert_at_index(2, 3)
print("插入元素后的链表:")
llist.print_list()
IndexError
。解决方法是在插入前检查索引是否有效。通过上述示例代码和解释,你应该能够理解如何在链表的不同索引处插入元素,并解决相关问题。
云+社区沙龙online第5期[架构演进]
云+社区技术沙龙[第4期]
Elastic 实战工作坊
Elastic 实战工作坊
Elastic 中国开发者大会
云+社区技术沙龙[第14期]
云+社区技术沙龙[第22期]
小程序·云开发官方直播课(数据库方向)
云+社区技术沙龙[第27期]
领取专属 10元无门槛券
手把手带您无忧上云