N叉樹的最大深度 DFS 最簡單算法

文章優先發表自原創博客

http://www.xdx97.com/#/single?bid=fc43fc9c-17b2-ba69-bfda-0c8d8acad0fc

 

  胡扯 : 最近開始做算法題,遇到了一個瓶頸。就是 DFS(深度優先遍歷),BFS(廣度優先遍歷)。這塊簡單來說

就是我啥也不會,之前在數據結構這門課上老師講過,但是沒有好好聽,遇到了幾個題全部都寫不出來,看答案還有點

吃力。下決心刷一個星期的DFS和BFS。

 

先來看這個入門級題目:N叉樹的最大深度

先直接給出一個比較簡單的答案  

class Solution {
   
    public static int dfs(Node root){
        int aa = 0;
        if (root.children != null){
            for(Node node : root.children){
                aa = Math.max(aa,dfs(node));
            }
        }
        return aa+1;
    }
    
    public int maxDepth(Node root) {
        if(root == null)
            return 0;
        return dfs(root);
    }
}

 

如果理解起來有點吃力,可以去創建一個只有三個節點的樹來進行debug查看。

 

這裏有一點想吐槽,leetcode 不允許使用 全局變量,有時候會導致很多麻煩。我上面這個題如果使用全局變量我想我

會更快的解決。但是可能最後算法沒有這樣寫優化來的好。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章