简体   繁体   English

计算链表Java中的特定节点

[英]Counting specific nodes in linked list Java

I have to count nodes in Circular Doubly Linked List in interval [-100;100]. 我必须在间隔[-100; 100]中计算循环双链表中的节点。 I know how to do that when i'm implementing a node. 我知道在实现节点时该怎么做。 Here's code : 这是代码:

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

But when i'm deleting a node at given position (pos), i have no idea how to check the value of that node, so i don't know if "number" stays the same or it decreases. 但是,当我要删除给定位置(pos)上的节点时,我不知道如何检查该节点的值,因此我不知道“数字”是保持不变还是减少。 Here is code of deleting node: 这是删除节点的代码:

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();
        }

    }

据我了解,您可以通过添加简单地检查节点的值

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM