问答内容是:如何在类似结构的链表中删除指定节点?
在类似结构的链表中插入新节点的步骤如下:
以下是一个示例代码:
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def insert(self, data, position):
new_node = Node(data)
if position == 0:
new_node.next = self.head
self.head = new_node
else:
current = self.head
for _ in range(position - 1):
if current.next is None:
raise IndexError("Position out of range")
current = current.next
new_node.next = current.next
current.next = new_node
def display(self):
current = self.head
while current:
print(current.data, end=" ")
current = current.next
print()
# 创建链表
linked_list = LinkedList()
# 插入节点
linked_list.insert(1, 0) # 在位置0插入节点1
linked_list.insert(2, 1) # 在位置1插入节点2
linked_list.insert(3, 2) # 在位置2插入节点3
# 显示链表
linked_list.display() # 输出:1 2 3
在类似结构的链表中删除指定节点的步骤如下:
以下是一个示例代码:
class Node:
def __init__(self, data=None):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def delete(self, position):
if self.head is None:
raise IndexError("List is empty")
if position == 0:
self.head = self.head.next
else:
current = self.head
for _ in range(position - 1):
if current.next is None:
raise IndexError("Position out of range")
current = current.next
if current.next is None:
raise IndexError("Position out of range")
current.next = current.next.next
def display(self):
current = self.head
while current:
print(current.data, end=" ")
current = current.next
print()
# 创建链表
linked_list = LinkedList()
# 插入节点
linked_list.insert(1, 0) # 在位置0插入节点1
linked_list.insert(2, 1) # 在位置1插入节点2
linked_list.insert(3, 2) # 在位置2插入节点3
# 删除节点
linked_list.delete(1) # 删除位置1的节点
# 显示链表
linked_list.display() # 输出:1 3
这是一个基本的链表插入和删除操作的实现。链表是一种常见的数据结构,适用于需要频繁插入和删除节点的场景,比如实现队列、栈等数据结构,或者用于解决一些特定的问题。
领取专属 10元无门槛券
手把手带您无忧上云