javascript循环链表

时间:2012-01-18 08:13:37

标签: javascript

我正在尝试使用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;
}

4 个答案:

答案 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.datai将是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'。这将始终返回链表中的最后一个值。