我正在尝试从列表中删除特定节点但不知何故此代码无效。我有一个计数器来跟踪列表所在的索引。如果我要删除的计数和索引是相同的,则假设删除。
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());
}
}
}
答案 0 :(得分:0)
if ( listCount == index)
{
previous.setNext(temp.getNext());
}
尝试使用此功能。这是假设它是一个单链表。
答案 1 :(得分:0)
看看这是否有帮助:
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());
}
}
}
答案 2 :(得分:0)
您没有删除节点:
使用此:previous.setNext(temp.getNext());
prev -> temp -> temp.next
如果您要删除temp
,请使用上一行。