1. 程式人生 > >LeetCode 給定一個 N 叉樹,找到其最大深度。 最大深度是指從根節點到最遠葉子節點的最長路徑上的節點總數

LeetCode 給定一個 N 叉樹,找到其最大深度。 最大深度是指從根節點到最遠葉子節點的最長路徑上的節點總數

/*
// Definition for a Node.
class Node {
public:
    int val;
    vector<Node*> children;

    Node() {}

    Node(int _val, vector<Node*> _children) {
        val = _val;
        children = _children;
    }
};
*/
class Solution {
public:
    int maxDepth(Node* root) {
         int depth = 1;
        if(root == NULL)
            return 0;
        else
        {
            int max = 0;
            for(int i = 0;i<root->children.size();i++)
            {
               int n = 1 + maxDepth(root->children.at(i));
                max = (max < n)?n:max;
            }
            
            depth = (depth >max)?depth:max;
            return depth;
        }
    }
};

思考:

N叉樹 要遍歷每個子叉樹,所以,可以從向量 size讀取。然後判斷最大叉樹的 深度。

坑: 只有一個節點的深度=1;