例外を使わない方法だと「再帰の下の階層で答えが見つかったか」を階層分確かめないといけない
また、答えを下層からルートまで運ぶのに返り値でリレーしなければならないから無駄が多い