为什么功能checkAB无法正常工作?

时间:2020-08-08 22:18:17

标签: java

首先,我想解释一下sod1函数的作用,因此其余内容将更易于理解。它获取一个列表和一个char,然后检查char是否存在于列表中,如果存在则返回char。问题出现在下一个功能中。我希望函数sod2检查a的下一个字符是否为b或b的下一个字符是否为a。你们看到问题了吗?

公共类MainClass {

public static void main(String[] args) {

    Node<Character> n1 = new Node<Character>('b');
    Node<Character> n2 = new Node<Character>('a');
    Node<Character> n3 = new Node<Character>('s');
    Node<Character> n4 = new Node<Character>('h');

    n1.setNext(n2);
    n2.setNext(n3);
    n3.setNext(n4);

    System.out.println(checkAB(n1));

}//Main



public static Node<Character> sod1(Node<Character> lst, char ch){
    if(lst == null) return null;
    if(lst.getValue() == ch) return lst;
    return sod1(lst.getNext(), ch);
}

public static boolean checkAB(Node<Character> lst) {
    if(sod1(lst,'a').getNext().equals('b') || sod1(lst, 'b').getNext().equals('a'))
        return true;

    return false;
}

} //班级

1 个答案:

答案 0 :(得分:0)

getNext()将返回Node <字符>,您不应将其与字符串进行比较。

通过调用getValue()函数或与另一个具有值'a'或'b'的Node 进行比较