Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- elasticsearch
- EC2
- EKS
- event loop
- FastAPI
- dockerfile
- WSGI
- ansible
- IAM
- 쿠버네티스
- leetcode
- ebs
- asyncio
- docker
- 자바스크립트
- AWS
- terraform
- Django
- Deployment
- asgi
- Service
- K8S
- Kubernetes
- Python
- IAC
- POD
- intervals
- github
- YAML
- kernel
Archives
- Today
- Total
궁금한게 많은 개발자 노트
[ leetcode ] 110. Balanced Binary Tree 본문
Binary Tree가 주어졌을 때, 해당 트리가 균형 잡힌 트리인지를 확인하는 문제입니다.
균형 잡힌 트리는 서로 다른 노드를 루트 노드로 하는 서브 트리 사이에 높이 차이가 1이하인 노드들로 구성된 트리를 의미합니다.
마찬가지로 재귀를 이용하여 left, right child로 시작하는 서브 트리의 균형 여부를 확인하고, 해당 노드의 균형 여부는 각 left, right child subtree의 depth를 구하여 판단합니다.
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
* };
*/
#define max(a,b)((a) > (b) ? (a) : (b))
class Solution {
public:
int findDepth(TreeNode* root) {
if (!root) return 0;
int left = findDepth(root->left);
int right = findDepth(root->right);
return 1 + max(left, right);
}
bool isBalanced(TreeNode* root) {
if (!root) return true;
bool left_balanced = isBalanced(root->left);
bool right_balanced = isBalanced(root->right);
if (!left_balanced || !right_balanced) return false;
int left_depth = findDepth(root->left);
int right_depth = findDepth(root->right);
int diff = left_depth > right_depth ? left_depth - right_depth : right_depth - left_depth;
if (diff > 1) return false;
return true;
}
};
'Algorithm' 카테고리의 다른 글
[ leetcode ] 11. Container With Most Water (0) | 2023.05.02 |
---|---|
[ leetcode ] 102. Binary Tree Level Order Traversal (0) | 2023.05.02 |
[ leetcode ] 111. Minimum Depth of Binary Tree (0) | 2023.05.02 |
[ leetcode ] 258. Add Digits (0) | 2023.05.02 |
[ leetcode ] 1288. Remove Covered Intervals (0) | 2023.05.02 |
Comments