删除链表中大于min小于max的结点
时间: 2023-09-06 19:07:07 浏览: 91
可以使用双指针法遍历链表,如果当前节点的值大于等于min并且小于等于max,则删除该节点。
具体实现可以参考以下代码:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def deleteNodes(head: ListNode, minVal: int, maxVal: int) -> ListNode:
# 定义两个指针,prev指向前一个节点,curr指向当前节点
prev, curr = None, head
# 遍历链表
while curr:
# 如果当前节点的值大于等于min并且小于等于max,则删除该节点
if minVal <= curr.val <= maxVal:
# 如果要删除的节点是头节点,则更新头节点
if prev is None:
head = curr.next
else:
prev.next = curr.next
# 更新指针,继续遍历链表
curr = curr.next
else:
# 更新指针,继续遍历链表
prev, curr = curr, curr.next
return head
```
时间复杂度为O(n),其中n为链表的长度。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)