试图从链表中删除值

时间:2013-09-24 12:15:49

标签: java linked-list

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

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



            }

3 个答案:

答案 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,请使用上一行。