ふと思ったけど、再帰やるとメモリーリークが起きやすくなるかな?