-1

再帰を使用してノードを正しく追加できました。

カウントを維持しようとしているときに問題が発生しました。ノードを追加する前に、再帰メソッドが false (複数回) を返します。最後にfalseを返さなくてもうまくいくようですが、Javaはそれが好きではありません。

どうすればこれを回避できますか?

ここに(疑似的な)コードがあります:

セットクラスから:

if(root.add(value))
    count++
    return true
return false

ノードクラスから:

    public boolean add(item value) {
    if(this == value) //check if it already exists
        return false;
    } else {
        if(this.left < value)
            if(this.left != null)
                this.left.add(value)
            else
                this.left = new Node(value)
                return true
        if(this.right > value)
            if(this.right != null)
                this.right.add(value)
            else
                this.right = new Node(value)
                return true
    }
    return false
    }

4

2 に答える 2