Java中循环双链表的陷入状态

Java中循环双链表的陷入状态,java,list,if-statement,doubly-linked-list,circular-list,Java,List,If Statement,Doubly Linked List,Circular List,我有点新的编码,所以我想我的问题应该是相当基本的哈哈 基本上,我在Java程序中使用循环双链表。 我已经成功地实现了insert、print和其他方法,但是我在两种方法(搜索和删除)上遇到了一些问题 我有一个list类成功地处理了insert代码: public class ListaDC { private NodoLCD head; private NodoLCD bottom; public void inserta(Planetas p) {

我有点新的编码,所以我想我的问题应该是相当基本的哈哈 基本上,我在Java程序中使用循环双链表。 我已经成功地实现了insert、print和其他方法,但是我在两种方法(搜索和删除)上遇到了一些问题

我有一个list类成功地处理了insert代码:

public class ListaDC {

    private NodoLCD head;
    private NodoLCD bottom;

    public void inserta(Planetas p) {
        if (head == null) {
            head = new NodoLCD(p);
            bottom = head;
            bottom.setNext(head);
            head.setBack(bottom);
        } else if (p.getId() > head.getDato().getId()) {
            NodoLCD aux = new NodoLCD(p);
            aux.setNext(head);
            head = aux;
            bottom.setNext(head);
            head.setBack(bottom);
        } else if (bottom.getDato().getId() >= p.getId()) {
            bottom.setNext(new NodoLCD(p));
            bottom = bottom.getNext();
            bottom.setNext(head);
            head.setBack(bottom);
        } else {
            NodoLCD aux = head;
            while (aux.getNext().getDato().getId() > p.getId()) {
                aux = aux.getNext();
            }
            NodoLCD temp = new NodoLCD(p);
            temp.setNext(aux.getNext());
            temp.setBack(aux);
            aux.setNext(temp);
            temp.getNext().setBack(temp);
        }
    }
下面是我的节点类的快照:

private Planetas dato;
    private NodoLCD next;
    private NodoLCD back;

    public NodoLCD(Planetas dato) {
        this.dato = dato;
    }

它有所有的接球手、二传手和投球手

我有另一个叫做行星的类,它有一些变量,比如名字,位置,类型

问题是这两种方法在同一部分上都失败了(如果条件允许):

public boolean existe(int-id){
布尔值esta=false;
if(head!=null){

如果((id>=head.getDato().getId())&&(不幸的是,我认为我们没有足够的信息来帮助解决这个问题。考虑阅读一些关于如何创建代码片段的提示,这些代码片段很容易让我们重现你的发行版。”SilvioMayolo,谢谢你的评论,我只是添加了更多的信息。你认为这就足够了吗?再次感谢:
public boolean existe(int id) {
        boolean esta = false;

        if (head!= null) {
            if ((id >= head.getDato().getId()) && (id <= last.getDato().getId())) {
                NodoLCD aux = cabeza;
                while (aux != bottom&& aux.getDato().getId() < id) {
                    aux = aux.getNext();
                }
                esta = (aux.getDato().getId() == id);
            }
        }
        return esta;
    }