我正在尝试使用javascript编写一个函数来查找linkedlist中的最小值。但是,我的代码似乎不起作用。我猜这个while循环有问题。我的代码如下:
function find_smallest(ll){
var i = ll;
var smallest = i.data;
while(i){
if(i.data<smallest){
smallest = i.data;
}
i.next;
}
return i.data;
}
答案 0 :(得分:1)
你很可能忘记提升自己的位置。
function find_smallest(ll){
var i = ll;
var smallest = i.data;
while(i) {
if(i.data < smallest){
smallest = i.data;
}
i = i.next; // <== here
}
return smallest;
}
你刚刚i.next
。你需要一个任务。此外,您的代码最终会引发错误,因为此时您指的是i.data
而i
将是null
。
答案 1 :(得分:0)
什么是i.next
?
功能?
i.next();
变量?
i = i.next;
答案 2 :(得分:0)
你的i现在应该在每次迭代后指向i.next:
function find_smallest(ll){
var i = ll;
var smallest = i.data;
while(i){
if(i.data<smallest){
smallest = i.data;
}
i = i.next;//not i.next;
}
return i.data;//i think this is smallest not i.data
}
答案 3 :(得分:0)
你必须返回'最小'而不是'i.data'。这将始终返回链表中的最后一个值。