首页 新闻 搜索 专区 学院

Java 字符串反转采用二次递归 运行过程不懂

0
悬赏园豆:50 [已解决问题] 解决于 2015-11-18 17:40
public class StringReverse {
    private static String reverse1(String s) {
        int len = s.length();
        System.out.println(s);
        if (len <= 1) {
            System.out.println(s);
            return s;
            //return "0";
        }
        String leftStr = s.substring(0, len / 2);
        String rightStr = s.substring(len / 2, len);
         reverse1(rightStr);
         System.out.println(s);
         reverse1(leftStr);
         System.out.println(s);
         return s;
        // return reverse1(rightStr)+reverse1(leftStr);
    }
    public static void main(String[] args) {
        System.out.println(reverse1("123"));    
    }

}

关于s的变化,是怎么递归回去的。刚参加工作,对Java基本原理规则摸索中。求教~~

用坏的时光的主页 用坏的时光 | 初学一级 | 园豆:157
提问于:2015-11-10 18:11
< >
分享
最佳答案
0

这与java原理没有关系,你这就是一个递归,自己调试看递归的过程

收获园豆:50
稳稳的河 | 老鸟四级 |园豆:4216 | 2015-11-11 11:07

嗯嗯,首先非常感谢~

只是递归时,递归到最细的一层之后,之后的数据怎么还是存在?比如就是那个s首先是123,然后是23、再是3、运行完这个后。又变成23、123了。。。感觉是自己不理解递归的思想。对于递归的过程也不理解。

用坏的时光 | 园豆:157 (初学一级) | 2015-11-12 15:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册