我必须创建一个包含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
我不知道为什么。
答案 0 :(得分:1)
如果列表中的最大值小于0.0,则写入的算法将无效。
更好的解决方案是定义指向找到的最大节点的"指针,"最初为NULL。
在循环中,如果此指针为NULL,则"第一个条目始终是最大的。" (可能会发现后续节点更大......)
如果循环后指针为NULL,则列表必须为空。