从链表中查找最大值

时间:2015-04-21 15:21:05

标签: c linked-list element traversal

我必须创建一个包含10个节点的链表,每个节点都有一个双节点。 然后,我必须在链接列表中搜索链接列表中的最大值,并显示结果。 程序从用户获取每个节点的值。 下面是我遍历列表的方法,试图找到最大的值。

找到最大的元素。我认为这就是我的问题所在。

struct node *ptr = head;
double largest = 0.0;
while (ptr != NULL)
{
     if (ptr->val > largest)
          largest = ptr->val;

     ptr = ptr->next;
}

printf("The largest value is %lf \n", largest);

程序输出:0.0000

我不知道为什么。

1 个答案:

答案 0 :(得分:1)

如果列表中的最大值小于0.0,则写入的算法将无效。

更好的解决方案是定义指向找到的最大节点的"指针,"最初为NULL。

在循环中,如果此指针为NULL,则"第一个条目始终是最大的。" (可能会发现后续节点更大......)

如果循环后指针为NULL,则列表必须为空。