LeetCode: Maximum Depth of Binary Tree(두 갈래 나무의 최대 깊이)

제목


Given a binary tree, find its maximum depth.
The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
Note: A leaf is a node with no children.
Example: Given binary tree [3,9,20,null,null,15,7],
 3 /\ 9 20    /\   15 7
return its depth = 3.

생각


대신블로그 읽기 추천:https://blog.csdn.net/terence1212/article/details/52182836, 아주 상세하게 말했어요.
여기서 교체 알고리즘을 사용하고 깊이를 우선적으로 훑어보며 좌우 트리의 깊이를 계산하고 최대자를 선택한다.

코드

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

        int maxDepth(TreeNode* root) {
            return depth(root);
        }
};

좋은 웹페이지 즐겨찾기