递归可视化 字符串翻转Recursive Reverse

2022-06-29  本文已影响0人  ae12

感觉递归真的反人类,人脑很容易被转进去,然后就不知所以,很懵逼,还是要可视化的图片更容易理解。
输入一行字符串,对字符串反转输出
例如:输入4321
输出 1234
递归可视化过程,转化为子问题,
1.反转“4321”转化为-->4+反转"321" --->先反转"321"--- >result +"4" 即可

  1. 反转 “321” --> 3+result= resverse("21")
    1. 反转"21" ->2+result =reverse("1")
1656481530233.png 1656481591173.png 1656481688379.png 1656481746271.png

return value="1" 赋值给subSolution

1656481858545.png

reverse("21") -->subSolusion =reverse("1")=1,继续往下执行solusion=1+word[0]=“12” ,并return “12”


企业微信截图_16564821358483.png

上面 return后 ---------> reverse("321")


1656482248859.png

回退到reserse(321) ,subProblem=21 ,subSolusion=reverse(21)的地方,如下

1656482691416.png

然后继续往下执行
solusion=subSolusion+word[0]


1656482779050.png

执行到return ,


1656482972910.png

则回退到最顶栈的reverse("1234")的subSolusion=reverse("231")返回,如下

1656482994799.png

继续往下执行 solusion=subSolusion+word[0]:

企业微信截图_16564831247176.png

return solusion="1234",结束

1656483199217.png
上一篇 下一篇

猜你喜欢

热点阅读