删除单链表中最大值结 点井返回值(用oython语言实现)
时间: 2024-11-04 19:11:30 浏览: 7
asp实现取得数组中的最大值的代码
在Python中,我们可以创建一个链表节点类,并实现删除最大值节点的功能。这里是一个简单的示例,假设我们有一个`ListNode`类代表链表节点:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def delete_max(head):
if not head or not head.next:
# 如果链表为空或只有一个元素,直接返回
return None
current = head
max_val = head.val
prev = None
while current:
# 检查当前节点是否比已知的最大值还大
if current.val > max_val:
max_val = current.val
# 更新指针,如果需要删除最大值,prev会指向它
prev = current
current = current.next
# 当前的prev就是最大值的前一个节点,所以删除max_val节点并返回prev作为新头
if prev:
prev.next = current.next
else: # 链表最大值就在头节点,特殊处理
head = None
return head
# 示例用法
# 创建一个链表
head = ListNode(5)
head.next = ListNode(9)
head.next.next = ListNode(3)
head.next.next.next = ListNode(7)
# 删除最大值节点并打印结果
new_head = delete_max(head)
while new_head:
print(new_head.val, end=" -> ")
new_head = new_head.next
```
运行这个函数后,你会得到一个没有最大值节点的新链表。
阅读全文