在LinkedList的索引处插入

时间:2015-05-08 07:26:17

标签: java linked-list

嗨我有这个方法在LinkedList的任何索引处插入一个元素,但是,新元素没有显示在输出中,我错过了什么感谢! 我在下面显示了部分代码,非常感谢任何帮助!

android:icon="@drawable/ic_launcher"

2 个答案:

答案 0 :(得分:1)

看起来你正在增加一个实例变量N

试试这个

public void insertAfter(int k, E e){
    if (k < 0 || k >= size()){
        throw new IndexOutOfBoundsException();}
    Node temp=new Node();
    temp.item=e;
    int index=k-1;
    Node current=head;
    for (int i=0; current != null && i<N; i++){
        if (i==index){
            temp.next=current.next;
            current.next=temp;
        } else {
            current = current.next;
        }
    }
    ++N;  
}

不要忘记,如果在位置0插入节点,则需要更新head个引用。

答案 1 :(得分:1)

您没有将当前元素移动到列表中。循环整数索引但不要将指针移动到当前节点。所以在循环中当前始终是链表的头部。 你需要这样做:

for (int i=0; i<=N; N++)
        if (i==index){
            temp.next=current.next;
            current.next=temp;
        }else{
         current=current.next;
       }

这样,当您添加元素时,您将处于正确的位置。否则你将把它插入第一个位置。