2015-10-08 85 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

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