0

我正在尝试从列表中删除特定节点,但不知何故此代码不起作用。我有一个计数器来跟踪列表现在所在的索引。如果我要删除的计数和索引相同,则应该删除。

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());
                    }
            }



            }
4

3 回答 3

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());
               }
        }
 }
于 2013-09-24T12:27:39.507 回答
0

您没有删除节点:

用这个:previous.setNext(temp.getNext());

prev -> temp -> temp.next

如果要删除temp,请使用上面的行。

于 2013-09-24T12:28:46.013 回答
0
if ( listCount == index) 
{
   previous.setNext(temp.getNext());
 }

尝试使用这个。这是假设它是一个单链表。

于 2013-09-24T12:22:03.070 回答