每次遇到递归算法都不是很理解,尤其是递归和栈的关系,下面的内容将帮助自己来更好的理解递归并运用。
把递归当作一个黑盒方法,而不要跳进这个里边,你就能理解了。递归就 相当于一个黑盒,将所适用的情况塞进去,就能出现自己 想要的结果。
想象用一本纯英文词典查单词,要查某一个单词的意思,翻到这个单词时,看解释,发现解释中有一个单词不认识,所以,无法明白这个要查的单词是什么意思;这时,再用这本词典(函数本身)查那个不认识的单词,又发现查的第2个单词的解释中又有一个单词不认识,那么,又再用这本词典查第3个不认识的单词,这样,一个一个查下去,直到解释中所有单词都认识,这样就到底了,就明白了最后一个单词是什么意思,然后一层一层倒回来,就知道我最初想查的第1个单词是什么意思了,问题就解决了。