我正在尝试从列表中删除特定节点,但不知何故,这段代码不起作用。我有一个计数器来跟踪列表现在所在的索引。如果我要删除的计数和索引相同,则假设删除。
PS:我不应该使用链接列表API。
public void doRemove(int index, int size) {
// implementation
int listCount =1;
ListNode temp = head;
ListNode previous = head;
while (temp.getNext() != null)
{
listCount++;
previous = temp;
temp = temp.getNext();
if ( listCount == index)
{
previous.setNext(temp);
temp.setNext(temp.getNext());
}
}
}
if ( listCount == index)
{
previous.setNext(temp.getNext());
}
尝试使用这个。这是假设它是一个单链表。
看看这是否有帮助:
public void doRemove(int index, int size) {
int listCount =1;
ListNode temp = head;
ListNode previous = head;
for(int i=0;temp.getnext()!=null;i++)
{
listCount++;
if(!(listCount == index))
{
previous = temp;
temp = temp.getNext();
}
else
{
previous.setNext(temp.getNext());
}
}
}
您没有删除节点:
使用这个: previous.setNext(temp.getNext());
prev -> temp -> temp.next
如果要删除temp
,请使用上面的行。