添加双链表后如何移动元素

问题描述 投票:-1回答:1

我已经在双向链接列表中的指定位置添加了一个元素,但是我想将位于该位置的所有元素移到右边,然后移到右边?关于如何解决此问题的任何提示?

public void addFirst(E e){
    DNode<E> headerNext = header.getNext();
    DNode<E> tempN = new DNode <E>(e, header, headerNext);
    headerNext.setPrev(tempN);
    header.setNext(tempN);
    size++;
}
public void add(int pos , E e ){
    DNode<E> ptr = new DNode<E> (e, null, null);
        if(pos == 1){
            addFirst(e);
            return;
        }
    DNode<E> optr = header;
    for (int i = 2; i <= size; i++) {
        if (i == pos) {
            DNode<E> tempN = optr.getNext();
            ptr.setNext(ptr);
            ptr.setPrev(optr);
            ptr.setPrev(tempN);
            tempN.setPrev(ptr);
        }
        ptr = ptr.getNext();
    }
    size++ ;
}
    }
java doubly-linked-list
1个回答
0
投票

基于您的评论的示例:

  1. 您需要更新新节点的下一个指针以指向元素3的地址
  2. 元素3的指向新节点地址的先前指针
  3. 具有元素3的先前地址的新节点先前地址
  4. 最后转到元素3的上一个地址(节点),并将其下一个指针更新为新的节点地址。
© www.soinside.com 2019 - 2024. All rights reserved.