写出在单链表上结点的数据域为X的结点之前插入一个新结点的程序
时间: 2024-10-12 22:18:23 浏览: 48
在单链表上插入一个新节点到某个特定位置,数据域为X的节点之前,通常需要找到目标节点,然后将新节点插入到其前一节点之后。以下是一个简单的Python示例,假设我们有一个`ListNode`类表示链表节点:
```python
class ListNode:
def __init__(self, data=0, next=None):
self.data = data
self.next = next
def insert_before_node(head, x, new_data):
# 创建新节点
new_node = ListNode(new_data)
# 如果头节点就是要找的目标,直接将新节点作为头
if head and head.data == x:
new_node.next = head
return new_node
# 遍历链表查找目标节点
current = head
while current and current.data != x:
current = current.next
# 插入新节点
if current:
new_node.next = current.next
current.next = new_node
else:
print("Node with data", x, "not found.")
return head # 返回新的链表头部
```
在这个函数中,首先检查头节点是否为目标节点。如果不是,就遍历链表直到找到目标节点。找到后,更新新节点的`next`指向当前节点的下一个节点,然后再将当前节点的`next`指向前一个节点。
阅读全文