2015-10-08 120 views
0

如何在2D LinkedList的底部添加一行O(1)?我一直在運行循環,但我必須在O(1)中實現它。可以幫忙嗎?在2D鏈接列表末尾添加一條線

[0,0,0,0] 
[0,0,0,0] 
[0,0,0,0] 
[0,0,0,0] 
.........//I want to add one more line here <----- 

LinkedList<LinkedList<T>> myList = new LinkedList<LinkedList<T>>(); 
public void addLastLine(){ 
    LinkedList<T> rowLine = new LinkedList<T>(); 
    this.lastRow += 1; 

     myList.add(lastRow, rowLine); 
     for(int col = 0; col <= origCol; col++){ 
      rowLine.add(col, this.element); 
     } 
} 
+0

你想添加什麼行? –

+0

@DhiwaTdG,我想在O(1) –

回答

0

變化myList.add(lastRow, rowLine);myList.add(rowLine);

的add()方法將添加到末尾的O(1)時間

+0

的末尾添加一個額外的行,除非在複雜度中計算'lastRow'(用N個值填充)的計算。 – RealSkeptic

+0

確實@RealSkeptic! :) – triadiktyo

+0

好吧,我會咬誘餌。 @RealSkeptic有一點,填充行的循環不是O(1)。根據你需要做什麼'myList'你可以插入相同的引用到已經建好的rowLine。但我想不出真正的生活情況,這不會造成麻煩 – triadiktyo

0

你並不需要指定插入索引。只需使用添加新列表並且不使用索引。