删除单链表中最大值结点并返回值用python表示
时间: 2024-10-25 17:17:38 浏览: 10
python数据结构:在已有的单链表中,删除所有值为x的元素:
在Python中,可以创建一个单链表节点类,然后通过遍历链表找到最大值节点,并在找到后删除它。这里是一个简单的示例:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def delete_max_from_linked_list(head):
if not head or not head.next: # 如果链表为空或只有一个元素
return None, head
current = head # 初始化当前节点为头节点
max_val = current.val # 当前最大值初始化为头节点的值
max_node = current # 最大值节点也指向头节点
while current.next:
if current.next.val > max_val: # 检查下一个节点是否更大
max_val = current.next.val
max_node = current.next
current = current.next # 移动到下一个节点
# 删除最大值节点(将指向下个节点的指针赋给当前节点)
if max_node is not head:
current.next = max_node.next
else:
head = None # 如果最大值是头节点,设置新的头节点为None
# 返回原最大值以及修改后的链表头节点
return max_val, head
# 示例
head = ListNode(3)
head.next = ListNode(5, ListNode(7, ListNode(4, ListNode(9))))
max_val, new_head = delete_max_from_linked_list(head)
# 打印结果
print("最大值:", max_val) # 输出: 9
print("新链表头:", new_head.val) # 输出: 5
```
阅读全文