将一个链表中元素值为x的结点删除。(链表数据域为整数,初始长为6个元素) **输入提示信息:\"输入数组%d个元素的值。\ \" **输入格式:\"%d\" **输出提示:\"此链表各个结点的数据域为: **输出格式:\"%d\" **输入提示信息:\"输入要删除的数据x: **输入格式:\"%d\" **输出提示:\"删除后链表各个结点的数据域为: **输出格式:\"%d \" 程序运行示例1: 输入数组6个元素的值。 11 22 33 44 55 66 此链表各个结点的数据域为:112233445566 输入要删除的数据x:33 删除后链表各个结点的数据域为:1122 44 5566 程序运行示例2: 输入数组6个元素的值。 6 2 7 4 5 9 此链表各个结点的数据域为:627459. 输入要删除的数据x:8 删除后链表各个结点的数据域为:627459
时间: 2023-09-16 07:16:02 浏览: 85
python数据结构:在已有的单链表中,删除所有值为x的元素:
以下是实现该功能的 Python 代码:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
# 创建链表
def createLinkedList(nums):
dummy = ListNode(0)
cur = dummy
for num in nums:
cur.next = ListNode(num)
cur = cur.next
return dummy.next
# 删除链表中值为x的结点
def deleteNode(head, x):
dummy = ListNode(0)
dummy.next = head
pre, cur = dummy, head
while cur:
if cur.val == x:
pre.next = cur.next
cur = cur.next
else:
pre = pre.next
cur = cur.next
return dummy.next
# 打印链表
def printLinkedList(head):
res = ""
while head:
res += str(head.val) + " "
head = head.next
print(res)
if __name__ == '__main__':
print("输入数组6个元素的值。")
nums = []
for i in range(6):
num = int(input())
nums.append(num)
head = createLinkedList(nums)
print("此链表各个结点的数据域为:", end="")
printLinkedList(head)
print("输入要删除的数据x:", end="")
x = int(input())
head = deleteNode(head, x)
print("删除后链表各个结点的数据域为:", end="")
printLinkedList(head)
```
程序运行示例1:
```
输入数组6个元素的值。
11
22
33
44
55
66
此链表各个结点的数据域为:11 22 33 44 55 66
输入要删除的数据x:33
删除后链表各个结点的数据域为:11 22 44 55 66
```
程序运行示例2:
```
输入数组6个元素的值。
6
2
7
4
5
9
此链表各个结点的数据域为:6 2 7 4 5 9
输入要删除的数据x:8
删除后链表各个结点的数据域为:6 2 7 4 5 9
```
阅读全文