使用递归而不截断?

时间:2014-03-15 17:11:16

标签: java recursion

我无法理解这种递归方法,因为return方法似乎没有为每次运行添加charAt(0)方法。

假设您有一个反转String的方法(它是正确的):

 public String reverseString(String s) {
        if (s.length() <= 1) 
             return s;

        return reverseString(s.substring(1)) + s.charAt(0);
    }

编辑:我现在明白了:

  • RS(你好)
  • rs(ello)+ H
  • (rs(llo)+ e)+ H
  • ((rs(lo)+ l)+ e)+ H
  • (((rs(o)+ 1)+ 1)+ e)+ H
  • o + l + l + e + H

1 个答案:

答案 0 :(得分:2)

是:

 rs(Hello)
 rs(ello) + H
 (rs(llo) + e) + H
 ((rs(lo) + l) + e) + H
 (((rs(o) + l) + l) + e) + H
 o + l + l + e + H