leetcode 알고리즘 연습: 두 갈래 나무의 최대 깊이
1431 단어 알고리즘과 데이터 구조
두 갈래 나무의 깊이는 뿌리 노드에서 가장 먼 잎 노드까지의 가장 긴 경로의 노드 수이다.
설명: 잎 노드는 하위 노드가 없는 노드를 가리킨다.
예: 두 갈래 나무[3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
최대 깊이 3을 반환합니다.사고방식: 변수ld를 설정하고 rd는 먼저 뿌리 노드의 왼쪽에서 출발하여 가장 깊은 잎 노드를 찾습니다. 왼쪽 노드ld+1이 존재하고 오른쪽 노드rd+1이 비교적 큰 값을 되돌려줍니다.오른쪽 동리 마지막으로 최대값 leetcode 코드를 비교합니다.
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
int maxDepth(struct TreeNode* root){
int ld=0,rd=0;
if(root)
{
ld=maxDepth(root->left)+1;
rd=maxDepth(root->right)+1;
}
return ld>=rd?ld:rd;
}
leetcode 표준 답안:
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
int maxDepth(struct TreeNode* root){
int maxNum = 0;
int leftNum = 0;
int rightNum = 0;
if (root != NULL) {
maxNum = 1;
}
else {
return maxNum;
}
if (root->left != NULL) {
leftNum = maxDepth(root->left);
}
if (root->right != NULL) {
rightNum = maxDepth(root->right);
}
if (leftNum >= rightNum) {
maxNum += leftNum;
}
else {
maxNum += rightNum;
}
return maxNum;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python3를 사용하여 빠른 배열 정렬2020년 새해 복 많이 받으세요.저는 ryuichi69라고 합니다.오늘도 알고리즘 연습의 성과, 연습을 설명하는 동시에 이 글을 썼다.솔직히 이해하기 쉽게 쓰느라 힘들었는데 설명하기 어려운 부분, 요건 누락 등이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.