答案错误,是pta中的题目
出来的结果是零,不知道该怎么修改了
a[n++] = p->ch;
不是p->next;
00100 6
00000 4 99999
00100 1 12309
68237 6 -1
33218 3 00000
99999 5 68237
12309 2 33218
问题所在是在初始的max_val
的赋值上。当前代码中将max_val
赋值为了0,假设链表中节点的值都大于等于0可以找到正确的最大值,但是如果链表中所有节点的值都小于0,则无法得到正确的结果。
解决方案是将max_val
的初始赋值设置为链表首节点的值,这样能够确保不论链表中节点的值是多少,初始的最大值都能正确设置。
以下是修改后的代码:
def find_max_node(head):
if head is None: # 如果链表为空则返回空
return None
max_val = head.value
current_node = head.next
while current_node is not None:
if current_node.value > max_val:
max_val = current_node.value
current_node = current_node.next
return max_val
现在的代码会在开始时把max_val
赋值为链表首节点的值,然后通过遍历链表比较每个节点的值来更新max_val
,最后返回最大的值。这样就能够得到正确的最大节点值了。
希望对你有帮助!如有任何问题,请随时向我提问。