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基本原理规则摸索中。求教~~
这与java原理没有关系,你这就是一个递归,自己调试看递归的过程
嗯嗯,首先非常感谢~
只是递归时,递归到最细的一层之后,之后的数据怎么还是存在?比如就是那个s首先是123,然后是23、再是3、运行完这个后。又变成23、123了。。。感觉是自己不理解递归的思想。对于递归的过程也不理解。