在递归方法中递增整数不起作用(LinkedList)

时间:2017-01-07 23:28:20

标签: java recursion increment

基本上我不知道为什么我的整数n没有变高。
谢谢你的每一个答案!

    public int n;

    public int firstIndexOf(T val) {
    if (val == this.getValue()) {
        return n;
    } else {
        if (val != this.getValue() && this.next != null) {
            n++;
            return this.next.firstIndexOf(val);

        } else {
            return -1;
        }
    }
   }

1 个答案:

答案 0 :(得分:0)

增量(n ++)处于错误状态检查:

    private int n = 0;

    public int firstIndexOf(int val) {
        if ( val == this.getValue() ) {
            return n+1; //This is were the increment should happen
        }
        else {
            if ( this.next != null ) {
                return this.next.firstIndexOf(val);
            } else {
                return -1;
            }
        }
    }

另外,如果要计算链表中与val具有相同值的所有元素,可以使用:

private int n = 0;

public int firstIndexOf(int val) {
    if ( val == this.getValue() ) {
        if ( this.next != null ) {
            return 1 + this.next.firstIndexOf(val);
        }
        else {
            return 1;
        }
    } else {
        if ( this.next != null ) {
            return this.next.firstIndexOf(val);

        } else {
            return 0;
        }
    }
}