이진 트리가 주어지면 최대 깊이를 찾으십시오. 이진 트리의 깊이는 루트 노드에서 가장 먼 잎 노드까지의 가장 긴 경로에 있는 노드의 수입니다. 설명: 리프 노드는 하위 노드가 없는 노드입니다. 【리코드 핫100】

가장 인기 있는 질문 100의 질문 104:

class Solution {
    public int maxDepth(TreeNode root) {
        //当root为null时,二叉树长度为0
        if(root == null){
            return 0;
        }
        //当root左右子树都不为null,整棵树最大长度为左右子树长度的最大值+1;
        return 1 + Math.max(maxDepth(root.left),maxDepth(root.right));
    }
}

아이디어 분석: 이런 종류의 문제를 할 때 큰 문제를 작은 문제로 바꾸는 법을 배워야 합니다. 예를 들어 이 문제에서 이진 트리의 최대 깊이를 묻는 경우 최대 깊이를 찾는 것으로 바꿀 수 있습니다 of its subtree + 1, 그것의 subtree가 leaf node일 때 depth는 1이고, subtree가 비어있을 때 depth는 0이다.

그러나 왼쪽 트리의 깊이는 오른쪽 트리의 깊이와 중첩될 수 없으므로 최대값을 취해야 하며 재귀를 사용하여 해결할 수 있습니다.

추천

출처blog.csdn.net/weixin_56960711/article/details/123338548