python删除链表中的某个元素
时间: 2024-01-12 09:03:28 浏览: 102
python 实现删除排序链表中的重复元素
要删除链表中的某个元素,需要先遍历链表,找到需要删除的节点,然后将其前驱节点的指针指向其后继节点,即可完成删除操作。
下面是一个简单的 Python 代码示例:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def deleteNode(head: ListNode, val: int) -> ListNode:
if not head:
return None
if head.val == val:
return head.next
cur = head
while cur.next:
if cur.next.val == val:
cur.next = cur.next.next
break
cur = cur.next
return head
```
这里定义了一个链表节点类 `ListNode`,并且定义了一个函数 `deleteNode`,它接受一个链表头节点 `head` 和一个需要删除的值 `val`,返回删除后的链表头节点。
在函数内,首先判断链表是否为空,如果为空则直接返回空。然后判断头节点是否需要删除,如果需要则返回头节点的下一个节点。接下来遍历链表,找到需要删除的节点,然后将其前驱节点的指针指向其后继节点。最后返回链表头节点即可。
使用示例:
```python
# 创建链表 1 -> 2 -> 3 -> 4 -> 5
head = ListNode(1, ListNode(2, ListNode(3, ListNode(4, ListNode(5)))))
# 删除值为 3 的节点,返回链表 1 -> 2 -> 4 -> 5
head = deleteNode(head, 3)
# 打印链表
cur = head
while cur:
print(cur.val, end=" -> ")
cur = cur.next
```
输出:
```
1 -> 2 -> 4 -> 5 ->
```
阅读全文