输入若干正整数,输入-1时结束,建立单向链表,再输入一个整数m,删除链表中值为m的所有结点。
时间: 2024-05-16 12:15:11 浏览: 157
单向链表,包括创建、插入、删除等基本操作
以下是Python语言的实现:
```python
class Node:
def __init__(self, value):
self.value = value
self.next = None
def create_linked_list():
head = None
tail = None
while True:
value = int(input())
if value == -1:
break
new_node = Node(value)
if head is None:
head = new_node
tail = new_node
else:
tail.next = new_node
tail = new_node
return head
def delete_node(head, m):
# 删除头结点
while head is not None and head.value == m:
head = head.next
# 删除其他结点
current = head
while current is not None and current.next is not None:
if current.next.value == m:
current.next = current.next.next
else:
current = current.next
return head
head = create_linked_list()
m = int(input())
head = delete_node(head, m)
# 输出删除后的链表
current = head
while current is not None:
print(current.value)
current = current.next
```
首先定义了一个`Node`类,表示链表中的一个结点,包含一个值和一个指向下一个结点的指针。然后定义了`create_linked_list`函数,用于建立单向链表,它会从输入中读取一些正整数,直到读到-1为止。在读取每个正整数时,会创建一个新的结点,并将其添加到链表的末尾。
接下来定义了`delete_node`函数,用于删除链表中值为m的所有结点。它首先删除头结点中所有值为m的结点,然后再依次删除其他结点中所有值为m的结点。最后,它返回删除后的链表的头结点。
最后,读取一个整数m,调用`delete_node`函数删除链表中所有值为m的结点,并输出删除后的链表。
阅读全文