删除带头节点单链表L中所有值为X的结点
时间: 2024-09-19 10:05:19 浏览: 133
链表-使用C语言实现带头结点的单链表.zip
在删除带头节点单链表(Linked List)中所有值为X的结点时,你可以采用迭代或递归的方式。这里是一个简单的迭代方法:
1. 首先创建两个指针,`current`用于遍历链表,`prev`用于保存`current`的前一个结点,因为头结点没有前一个结点,所以初始设置为`None`。
2. 当`current`指向的结点值等于`X`时,执行以下操作:
a. 如果`prev`存在,则将`prev`的下一个结点设置为`current.next`,跳过当前结点。
b. 否则,说明头结点就是需要删除的值,更新头结点为`current.next`。
3. 更新`prev`和`current`,让它们分别向前移动一位,直到`current`变为`None`,表示已经遍历完整个链表。
以下是Python代码示例:
```python
def remove_X_from_head_list(L, X):
current = L.head
prev = None
while current is not None and current.val == X:
if prev is not None:
prev.next = current.next
else:
L.head = current.next
current = current.next
prev = current
return L
```
阅读全文