2016-03-27 20 views
1

我必须在间隔[-100; 100]中计算循环双向链表中的节点。我知道如何做到这一点,当我实施节点。这里是代码:计算链接列表中的特定节点Java

public void insert(int val){ 
     .... 
     if((val >= -100) && (val <= 100)){ 
      number++; 
     } 
..... 

但是,当我在给定的位置(POS)删除一个节点,我不知道如何检查该节点的价值,所以我不知道,如果“数”停留在相同或减少。 这里是删除节点的代码:

public void deleteAtPos(int pos){ 
      if (pos == 1){ 
      if(size == 1){ 
       start = null; 
       end = null; 
       size = 0; 
       number = 0; 
       return; 
      } 
      start = start.getLinkNext(); 
      start.setLinkPrev(end); 
      end.setLinkNext(start); 
      size--; 
      return; 
     } 
     if (pos == size){ 
      end = end.getLinkPrev(); 
      end.setLinkNext(start); 
      start.setLinkPrev(end); 
      size--; 
     } 
     } 
     Node ptr = start.getLinkNext(); 
     for (int i = 2; i <= size; i++){ 
      if (i == pos){ 
       Node p = ptr.getLinkPrev(); 
       Node n = ptr.getLinkNext(); 
       p.setLinkNext(n); 
       n.setLinkPrev(p); 
       size--; 
       return; 
      } 
      ptr = ptr.getLinkNext(); 
     } 

    } 
+0

检查节点的值,你是什么意思'如何检查节点的值'?链表节点应该有一个数据存取方法getData()' – mangusta

+0

是的,我有这种方法,但我不知道如何在这种情况下使用它。 – Eli

回答

0

据我了解,你可以简单地通过增加

ptr.getval() or start.getval() //depending on the value of pos(aasuming getval is your function to retrieve node data)