删除单链表中最大值结点并返回值的实验内容
时间: 2024-06-13 09:07:04 浏览: 15
以下是删除单链表中最大值结点并返回值的Python实现:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def del_max_node(head: ListNode) -> int:
if not head or not head.next:
return None
pre, p, maxp, maxpre = head, head.next, head.next, head
while p:
if maxp.val < p.val:
maxp = p
maxpre = pre
pre = p
p = p.next
maxpre.next = maxp.next
return maxp.val
```
其中,ListNode是链表的节点类,del_max_node函数接收一个链表头节点head,返回删除的最大值结点的值。在函数中,我们首先判断链表是否为空或只有一个节点,如果是,则直接返回None。接着,我们定义四个指针pre、p、maxp和maxpre,分别表示当前节点的前驱节点、当前节点、最大值节点和最大值节点的前驱节点。我们遍历链表,如果当前节点的值比最大值节点的值大,则更新最大值节点和最大值节点的前驱节点。最后,我们利用更新后的指针删除最大值节点,并返回其值。
相关推荐
![](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)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)