从单个链接中找到中间元素?

时间:2015-08-19 08:47:27

标签: java mysql max iso

我有这个问题:

  

从单个链接列表中查找中间元素而不继续节点数(如果节点数是奇数,那么一个中间元素,即使是两个中间元素)。

1 个答案:

答案 0 :(得分:0)

假设Node是保持下一个节点和值的类:

Object returnMiddle(Node first) {
   Node n, m;
   n = m = first;
   while (n != null) {
      n = n.next;
      n = (n == null ? null : n.next);
      m = (n == null ? m : m.next);
   }
   return m.value;
}

想法很简单:在n上执行两个步骤,m上只有一步,所以当n到达结尾时,m将指向中间节点