[leetcode]104.두 갈래 나무의 최대 깊이

3185 단어 LeetCode
두 갈래 나무를 정해 최대 깊이를 찾아라.
두 갈래 나무의 깊이는 뿌리 노드에서 가장 먼 잎 노드까지의 가장 긴 경로의 노드 수이다.
설명: 잎 노드는 하위 노드가 없는 노드를 가리킨다.
예: 두 갈래 나무[3,9,20,null,null,15,7],
    3
   / \
  9  20
    /  \
   15   7
  3 。

사고방식: 루트 노드부터 dfs가 훑어보고 전체 변수의 최대 깊이를 저장합니다.
class Solution {
   public:
    int max_length;
    int maxDepth(TreeNode* root) {
        dfs(root, 0);  // 
        return max_length;
    }
    void dfs(TreeNode* root, int depth) {
        if (root == NULL) {
            if (depth > max_length) max_length = depth;
            return;
        }
        dfs(root->left, depth + 1);
        dfs(root->right, depth + 1);
    }
};

좋은 웹페이지 즐겨찾기