图的dfs非递归_如何理解恶心的递归
遞歸惡心主要惡心在無論是做題還是解析都比較抽象,這里記錄一下遞歸小白的理解過程:
# Definition for a binary tree node.以上圖為實(shí)例,
直接從dfs(root)開始理解:
1、初始,root進(jìn)入,if not root未進(jìn)入,然后是進(jìn)入第一個(gè)遞歸函數(shù)dfs(root)(root.right);
(為了方便理解,每一層的函數(shù)調(diào)用的實(shí)際的節(jié)點(diǎn)我做了額外的標(biāo)記)
2、進(jìn)入了遞歸函數(shù),判斷,if not root.right(為了便于理解后面的形參root統(tǒng)一用實(shí)際的參數(shù)來表示),然后就又遇上了dfs(root.right)(root.right.right);
3、從上圖可以看出,root.right.right沒有節(jié)點(diǎn)了,因此進(jìn)入if not root.right.right,木有節(jié)點(diǎn),直接return,返回一個(gè)空;
4、此時(shí)我們進(jìn)入了dfs(root.right)(root.right.right)的下一步,
#######################################################實(shí)際的函數(shù)功能,接著dfs(root.left),整個(gè)分析過程和上面一樣;
遞歸難理解主要是因?yàn)楸容^繞,我們正常是按照順序一步一步解決問題的,而遞歸則是反過來,逆著一步一步解決問題的,這個(gè)時(shí)候不妨麻煩一點(diǎn)多做點(diǎn)標(biāo)記就好理解了;
總結(jié)
以上是生活随笔為你收集整理的图的dfs非递归_如何理解恶心的递归的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学python什么视频教程_学习pyth
- 下一篇: 双绞线传输距离多长_网线数据传输最大距离