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