본문 바로가기
SW/알고리즘 문제풀이

[leet code] Maximum Depth of Binary Tree (c++)

by 미래미래로 2020. 12. 17.
728x90

Problem

Given the root of a binary tree, return its maximum depth.

A binary tree's maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

 

Example 1:

Input: root = [3,9,20,null,null,15,7]

Output: 3

 

Example 2:

Input: root = [1,null,2]

Output: 2

 

Example 3:

Input: root = []

Output: 0

 

Example 4:

Input: root = [0]

Output: 1

 

Constraints:

  • The number of nodes in the tree is in the range [0, 104].
  • -100 <= Node.val <= 100

How to solve

구해야 하는것?

  • 이진 트리의 최대 깊이 구하기

예시

  • Input: root = [3,9,20,null,null,15,7]
  • Output: 3

풀이

노드를 순회하면서 각 노드에서의 최대 깊이를 계산한다. 

Solution(c++)

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    int maxDepth(TreeNode* root) {
        if(root == NULL){
            return 0;
        }
        int left_cnt = maxDepth(root->left);
        int right_cnt = maxDepth(root->right);;
        left_cnt +=1;
        right_cnt +=1;
        return max(left_cnt, right_cnt);
        
    }
};

Test Result

 

728x90

댓글