【发布时间】:2015-12-28 20:42:44
【问题描述】:
我想删除列表的最右半部分,但此代码有时可以,有时则不行。
如果 l 包含A → B → C → D → E,那么在调用之后
l.removeRightmostHalf(),l 变为 A → B → C。
public void removeRightmostHalf() {
if (size % 2 != 0)
{
current = (size / 2) + 1;
while(current <= size)
{
for (int i = current + 1; i < size; i++)
nodes[i-1] = nodes[i];
size--;
if (size == 0)
current = -1;
else if (current == size)
current = 0;
}
}
else
{
current = (size / 2);
while(current <= size)
{
for (int i = current + 1; i < size; i++)
nodes[i-1] = nodes[i];
size--;
if (size == 0)
current = -1;
else if (current == size)
current = 0;
}
}
}
【问题讨论】:
标签: java arrays methods removeall