递归可视化 字符串翻转Recursive Reverse
2022-06-29 本文已影响0人
ae12
感觉递归真的反人类,人脑很容易被转进去,然后就不知所以,很懵逼,还是要可视化的图片更容易理解。
输入一行字符串,对字符串反转输出
例如:输入4321
输出 1234
递归可视化过程,转化为子问题,
1.反转“4321”转化为-->4+反转"321" --->先反转"321"--- >result +"4" 即可
- 反转 “321” --> 3+result= resverse("21")
- 反转"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