我正在使用Java的LinkedList
,據我所知,沒有LinkedList.next(int);
,但有ListIterator.next()
,它通過LinkedList.listIterator()
進場。然而,正如我想到的:使用ListIterator
來遍歷元素(這需要O(n)時間)將在您刪除所有元素之後失敗(對刪除本身進行常量操作,但O(n)到達元素)。在O(n)時間穿越LinkedList並刪除k個元素
試圖刪除某個k < = n個元素的簡單的方法,它是這樣的:
if (list.get(++index).equals(elementToRemove))
{
list.remove(index);
}
是爲O(n^2)操作中,當各第n get()
S的是O(n )。
有什麼辦法在線性時間內通過LinkedList
並刪除應該去的元素?
你必須使用迭代器的'remove'方法。 –
我很困惑,爲什麼不使用'ListIterator'? –
我不知道ListIterator已經刪除()! –