我有这个问题:
从单个链接列表中查找中间元素而不继续节点数(如果节点数是奇数,那么一个中间元素,即使是两个中间元素)。
答案 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
将指向中间节点