0

私は、ツリー内で逆の二分探索ツリーで最小の文字列を出力する再帰的な方法に取り組んでいますが、このタスクを達成する方法が不十分だと感じています。

ルート変数を再帰的なオーバーロード メソッドに2 回渡すドライバー メソッドがあります。これは紛らわしいだけでなく、悪い習慣だと考えられているように感じます。2 回渡した理由は、元のルート変数を追跡して、それを必要とする検索メソッドに渡すことができるようにするためです。これを行う別の方法はありますか、それとも私はそれにこだわっていますか?

関連コード:

    public String smallRev() {
        return smallRev(root,root); // <--- Bad practice?
    }

    private static String smallRev(StringNode temproot, StringNode root) {
        String result;
        if (temproot == null) {
            result = "";
        } else if (search(root, revString(temproot.getString()))) { //<-- Used here
            result = temproot.getString();
        } else {
            String left = smallRev(temproot.getLeft(),root); // <-- Here
            String right = smallRev(temproot.getRight(),root); // <-- & Here
            if (!left.equals("")) {
                result = left;
            } else {
                result = right;
            }
        }
        return result;
    }
4

0 に答える 0