Leetcode637. 두 갈래 나무의 층 평균치(반복, 깊이, 층당 개수)
9404 단어 LeetCode 문제
비공 두 갈래 나무를 정하고 각 층 노드의 평균값으로 구성된 그룹을 되돌려줍니다.예 1:
:
3
/ \
9 20
/ \
15 7
: [3, 14.5, 11]
:
0 3, 1 14.5, 2 11. [3, 14.5, 11].
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
/* :
,
,
*/
int depth_tree(struct TreeNode* root){
if(!root) return 0;
int depthl = depth_tree(root->left);
int depthr = depth_tree(root->right);
return 1 + (depthl > depthr ? depthl : depthr);
}
void average_treeval(struct TreeNode* root, double *ret, int depth, int *count){
if(!root) return;
ret[depth] += root->val;
count[depth]++;
depth++;
average_treeval(root->left, ret, depth, count);
average_treeval(root->right, ret, depth, count);
}
double* averageOfLevels(struct TreeNode* root, int* returnSize){
int depth = 0;
depth = depth_tree(root);
double *ret = (double *)calloc(depth, sizeof(double)); // ret
int *count = (int *)calloc(depth, sizeof(int)); //count
average_treeval(root, ret, 0, count);
int d = 0;
for(; d < depth; d++){
ret[d] = ret[d] / count[d];
}
*returnSize = depth;
return ret;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
LeetCode637. 두 갈래 나무의 층 평균치비공 두 갈래 나무를 정하고 각 층 노드의 평균값으로 구성된 그룹을 되돌려줍니다. 예 1: 참고: 노드 값의 범위는 32비트 기호 정수 범위 내에.. 사고방식: 넓이를 우선적으로 두 갈래 나무를 두루 훑어본다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.