新增遞迴方法