letecode [104] - 이진 트리의 최대 깊이

이진 트리 감안할 때, 최대 깊이를 찾을 수 있습니다.
최대 깊이는 아래 가장 먼 리프 노드에 루트 노드에서 가장 긴 경로를 따라 노드의 수입니다.
참고 : 잎은 자녀가없는 노드입니다.
예:
주어 이진 트리 [3,9,20, NULL, NULL, 15,7]
    3 
   / \ 
  9~20 
    / \ 
   15 7

= 3이 깊이를 반환합니다.

효과에 따라 :

  바이너리 트리 컴퓨팅 깊이 이진 트리 감안할 때

이해 :

  루트 노드는 0의 깊이 비어, 왼쪽 서브 트리의 루트 노드가 하나의 깊이 비어 있습니다.

  재귀 수준 +1 각 층.

코드 C ++ :

 

/ * * 
 * 이진 트리 노드에 대한 정의. 
 * 구조체의 TreeNode { 
 * INT의 발; 
 * * TreeNode를 왼쪽; 
 * * TreeNode를 오른쪽; 
 *의 TreeNode (INT의 X) 발 (X), 오른쪽 (NULL) (NULL) 왼쪽 {} 
 *}; 
 * / 
클래스 솔루션 {
 공개 :
     INT MAXDEPTH (TreeNode를의 *의 루트) {
         경우 (루트 == NULL) 반환  0 ;
        경우 (루트 -> 좌측 == NULL && 루트 -> 오른쪽 == NULL)  1 ;
        INT는 = MAXDEPTH (루트 -> 좌측 좌);
        INT 오른쪽 = MAXDEPTH (루트 레벨>권리);
        반환 ? 좌측> 우측 + 왼쪽 1 우측 + : 1 ; 
    } 
};

 

결과 :

  :로 실행되면  12 MS의   메모리 소비 :  19.3 MB를

 

추천

출처www.cnblogs.com/lpomeloz/p/10988877.html