[LeetCode] 밸런스 바이너리 트리 밸런스 트리
1155 단어 LeetCode
For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than. 이 문제는 어렵지 않다. 스스로 논리를 똑똑히 생각하면 된다. 즉, 두 갈래 나무는 균형수로서 반드시 만족해야 한다. 1) 좌우 나무는 모두 균형수이고, 2) 왼쪽 나무와 오른쪽 나무의 높이 차이는 1보다 작다.다음은 코드입니다.
bool isBalanced(TreeNode *root) {
int leftH, rightH;
return isBalancedUtil(root, leftH, rightH);
}
bool isBalancedUtil(TreeNode* root, int& leftH, int& rightH)
{// utility function
if(root == NULL)
{
leftH = 0;
rightH = 0;
return true;
}
int leftH1, rightH1, leftH2, rightH2;
if(! isBalancedUtil(root->left, leftH1, rightH1) )
return false;
if(! isBalancedUtil(root->right, leftH2, rightH2) )
return false;
leftH = max(leftH1, rightH1) + 1;
rightH = max(leftH2, rightH2) + 1;
if(abs(leftH-rightH)>1)
return false;
else
return true;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
python 문자열 입력으로 모든 유효한 IP 주소 생성(LeetCode 93번 문제)이 문제의 공식 난이도는 Medium으로 좋아요 1296, 반대 505, 통과율 35.4%를 눌렀다.각 항목의 지표로 말하자면 보기에는 약간 규범에 맞는 것 같지만, 실제로도 확실히 그렇다.이 문제의 해법과 의도는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.