이진 트리 감안할 때, 최대 깊이를 찾을 수 있습니다.
최대 깊이는 아래 가장 먼 리프 노드에 루트 노드에서 가장 긴 경로를 따라 노드의 수입니다.
참고 : 잎은 자녀가없는 노드입니다.
예:
주어 이진 트리 [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를