优化Double Linked LIst

时间:2017-09-01 13:17:08

标签: java performance linked-list doubly-linked-list

所以我有一个方法,它假设在链表中的给定索引处插入数据。我实现的方法确实完成了它通过JUnit测试功能和更正。 但是,它没有通过JUnit中的时间效率测试。

我解决这个问题的逻辑是找出索引的确切位置。 例如,如果索引是< =(size / 2)然后开始遍历链表的头部,我可以这样做。否则,从等于(大小/ 2)的点开始并继续直到找到索引。 不确定这种逻辑是解决时间效率的正确方法之一。

如何使这种方法简洁有效?

   public T removeAtIndex(int index) {

    if (index < 0 || index >= size) {
        throw new IndexOutOfBoundsException();
    }
    LinkedListNode<T> temp = head;
   int i = 0;
    if (index == 0) {
        return removeFromFront();
    }
    if (index == size - 1) {
        return removeFromBack();
    }
    while (i < index) {
        temp = temp.getNext();
        i++;
    }
    temp.getPrevious().setNext(temp.getNext());
    temp.getNext().setPrevious(temp.getPrevious());
    size--;
    return temp.getData();
}

如果有人能够如何实现这种逻辑,我将不胜感激。

0 个答案:

没有答案