移除链表元素(python)
时间: 2023-05-31 10:05:41 浏览: 49
定义一个ListNode类,其中包含val和next两个属性,表示当前节点的值和下一个节点。然后定义一个Solution类,其中包含一个removeElements函数,用于移除链表中指定的元素。具体实现如下:
```python
class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class Solution:
def removeElements(self, head: ListNode, val: int) -> ListNode:
# 处理头节点
while head and head.val == val:
head = head.next
if not head:
return None
# 处理中间节点
prev, curr = head, head.next
while curr:
if curr.val == val:
prev.next = curr.next
else:
prev = curr
curr = curr.next
return head
```
首先处理头节点,如果头节点的值等于val,则将头节点指向下一个节点。然后处理中间节点,使用两个指针prev和curr,分别指向当前节点和下一个节点。如果curr节点的值等于val,则将prev节点的next指向curr节点的next,否则将prev指向curr,curr指向下一个节点。最后返回头节点。