移除链表元素(python)
时间: 2023-05-31 22:05:33 浏览: 86
以下是移除链表元素的Python代码:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def removeElements(head: ListNode, val: int) -> ListNode:
# 处理头部节点为要删除元素的情况
while head is not None and head.val == val:
head = head.next
# 处理链表中间节点为要删除元素的情况
if head is not None:
node = head
while node.next is not None:
if node.next.val == val:
node.next = node.next.next
else:
node = node.next
return head
```
这里定义了一个ListNode类表示链表节点,其中val表示节点的值,next表示指向下一个节点的指针。removeElements函数的第一个参数head表示链表的头节点,第二个参数val表示要删除的元素值。函数的返回值是移除后的链表头节点。
函数的实现分为两步:
1. 处理头部节点为要删除元素的情况,即如果头部节点的值等于要删除的元素值,则将头部节点指向下一个节点,直到头部节点的值不等于要删除的元素值。
2. 处理链表中间节点为要删除元素的情况,即从头节点开始遍历链表,如果当前节点的下一个节点的值等于要删除的元素值,则将当前节点的next指针指向下一个节点的next指针,即跳过当前节点的下一个节点;否则,将当前节点指向下一个节点。遍历完成后,返回链表的头节点。
注意,这里的实现并没有考虑链表为空的情况,需要在调用函数前进行判断。