建立长度为n的单链表,n>0,删除单链表中等于给定值的元素。数据类型指定为整型。 输入格式: 第一行为链表长度n; 第二行为链表中的n个数据元素的值; 第三行为需要删除的元素值。 输出格式: 输出为删除后的链表中的所有数据元素的值。 输入样例: 4 45 12 34 8 34 输出样例: 45 12 8
时间: 2023-12-10 21:42:04 浏览: 20
以下是一种实现方式,使用了双指针法对链表进行遍历删除:
```python
class Node:
def __init__(self, val):
self.val = val
self.next = None
def delete_node(head: Node, val: int) -> Node:
# 处理头结点等于val的情况
while head and head.val == val:
head = head.next
if not head:
return None
# 处理中间结点等于val的情况
prev, curr = head, head.next
while curr:
if curr.val == val:
prev.next = curr.next
else:
prev = curr
curr = curr.next
return head
n = int(input().strip())
lst = list(map(int, input().strip().split()))
val = int(input().strip())
# 构建链表
head = Node(lst[0])
curr = head
for i in range(1, n):
curr.next = Node(lst[i])
curr = curr.next
# 删除节点
head = delete_node(head, val)
# 打印结果
curr = head
while curr:
print(curr.val, end=' ')
curr = curr.next
```
输入样例:
```
4
45 12 34 8
34
```
输出样例:
```
45 12 8
```