Java 排序链表中的查找方法

Java 排序链表中的查找方法,java,linked-list,return,Java,Linked List,Return,又来了 现在我的问题是,我需要创建一个方法查找,它将搜索一个链接列表,以便找到一个人并返回那个人 public Person lookup(String name) { if(head == null) { return null; } if(head.person.name.compareTo(name) == 0) { head = head.next; return person; } Node cu

又来了

现在我的问题是,我需要创建一个方法查找,它将搜索一个链接列表,以便找到一个人并返回那个人

public Person lookup(String name) {
    if(head == null) {
        return null;
    }
    if(head.person.name.compareTo(name) == 0) {
        head = head.next;
        return person;
    }

    Node current = head;
    Node prev = head;
    while(current != null) {
        if(current.person.name.compareTo(name) == 0) {
            prev.next = current.next;
            return person;
        }
        prev = current;
        current = current.next;
    }
    return null;
}

现在,该方法取这个参数名,比较列表中的对象,如果有匹配,它应该返回person;精确地说,当比较等于0时它返回的值。当我编译时,我得到一个错误,说它找不到符号person。我如何告诉程序返回找到的person?谢谢

您可以逐节点搜索查找,如下所示:

    public Person lookup(String name) {

        if (head == null) { // check if head is null then Linkedlist is empty and return null
            return null;
        }

        Node current = head; // start from head
        while (current != null) {
            if (current.person.name.equals(name)) { // if equals return person
                return current.person;
            }
            current = current.next; // get the next
        }
        return null;
    }

您应该返回
head.person
current.person
。您的代码不知道什么是

head
在哪里声明?它是什么类型的?该类型是否有一个
person
字段?Head是一个节点对象,它被声明为null。嘿!我尝试过实现这个方法,但得到了相同的结果,它找不到符号person.yes,应该
返回current.person
返回人:)哦,我想我错过了。再次感谢你!你真是个救命恩人。干杯,伙计!你能批准这个解决方案吗?是的,我确实忘了。