【问题描述】假设单链表有唯一的最大值创建一个单链表并删除其最大值。提示:用头插法建立链表【输入形式】从键盘输入若干个整数以空格分开-1作为输入结束。【输出形式】输出删除最大值后的单链表的所有值。【样例输入】65 5 6 78 12 -1【样例输出】12 6 5 65
# 定义链表节点类
class ListNode:
def __init__(self, value=0, next=None):
self.val = value
self.next = next
# 创建单链表
head = ListNode() # 头节点
while True:
val = input().strip()
if val == '-1':
break
node = ListNode(int(val))
node.next = head.next
head.next = node
# 删除最大值
max_val = head.next.val
pre_node = head
cur_node = head.next
while cur_node:
if cur_node.val > max_val:
max_val = cur_node.val
pre_node = pre_node.next
cur_node = cur_node.next
else:
pre_node.next = cur_node.next
cur_node = pre_node.next
# 输出单链表
cur_node = head.next
while cur_node:
print(cur_node.val, end=' ')
cur_node = cur_node.next
``
原文地址: http://www.cveoy.top/t/topic/hiNY 著作权归作者所有。请勿转载和采集!