pta求链表节点最大值

img

img

img

答案错误,是pta中的题目
出来的结果是零,不知道该怎么修改了

a[n++] = p->ch;
不是p->next;

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7547310
  • 你也可以参考下这篇文章:【PTA】【数据结构与算法】归并排序、基数排序和桶排序
  • 除此之外, 这篇博客: PTA 重排链表(25分)数组模拟链表简单易懂中的 输入样例: 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    00100 6
    00000 4 99999
    00100 1 12309
    68237 6 -1
    33218 3 00000
    99999 5 68237
    12309 2 33218
    
  • 以下回答来自chatgpt:

    问题所在是在初始的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,最后返回最大的值。这样就能够得到正确的最大节点值了。

    希望对你有帮助!如有任何问题,请随时向我提问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^