簡體   English   中英

在雙向鏈表 java 中的特定索引處插入通用元素

[英]Insert generic element at a specific index in Doubly linked List java

我的雙向鏈表 class 中有一個 function 來插入一個給定索引的元素。 所以我做了一些不起作用的代碼。他們說的錯誤是“無法讀取字段“prev”,因為“current”為空”。

這是我的代碼:

public void add(int key, E data){
    if(key<0 || key>size){
        return;
    }
    else{
        Node current = head;
        if (key==0){
            Node newLink = new Node(data);

            if (size==0)
                tail = newLink;
            else
                head.prev = newLink;
            newLink.next = head;
            head = newLink;
        }
        else{
            for(int i=0;i<key;i++){
                current= current.next;
            }
            Node newNode= new Node(data);
            newNode.next=current;
            newNode.prev=current.prev;
            size++;
        }
    }
}

請幫助我如何解決這個問題。

我在您提供的代碼中看到了一些問題。 首先,您不會在每個需要的地方都增加尺寸。 其次,推進電流的 for 循環比需要的更進一步。

這是我的看法:

public void add(int key, E data){
    if(key<0 || key>size)
        return;
    Node current = head;
    if (key==0){
          Node newLink = new Node(data);
          if (size==0)
              tail = newLink;
          else
              head.prev = newLink;
          newLink.next = head;
          head = newLink;
   } else{
          for(int i=0;i<key-1;i++){
              current= current.next;
          }
          Node newNode= new Node(data);
          newNode.next=current;
          newNode.prev=current.prev;
  }
  size++;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM