当前位置:网站首页>剑指 Offer II 044. 二叉树每层的最大值-dfs法
剑指 Offer II 044. 二叉树每层的最大值-dfs法
2022-08-03 19:36:00 【Mr Gao】
剑指 Offer II 044. 二叉树每层的最大值
给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。
示例1:
输入: root = [1,3,2,5,3,null,9]
输出: [1,3,9]
解释:
1
/
3 2
/ \ \
5 3 9
示例2:
输入: root = [1,2,3]
输出: [1,3]
解释:
1
/
2 3
示例3:
输入: root = [1]
输出: [1]
示例4:
输入: root = [1,null,2]
输出: [1,2]
解释:
1
2
示例5:
输入: root = []
输出: []
/** * 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 f(struct TreeNode* root){
if(root){
int a=f(root->left)+1;
int b=f(root->right)+1;
if(a>b){
return a;
}
else{
return b;
}
}
else{
return 0;
}
}
void f2(struct TreeNode* root,int h,int *a){
if(root){
f2(root->left,h+1,a);
f2(root->right,h+1,a);
if(root->val>a[h]){
a[h]=root->val;
}
}
}
int* largestValues(struct TreeNode* root, int* returnSize){
int h=f(root);
int *re=(int *)malloc(sizeof(int)*h);
* returnSize=h;
for(int i=0;i<h;i++){
re[i]=-2147483648;
}
f2(root,0,re);
return re;
}
边栏推荐
猜你喜欢
随机推荐
CC2530_ZigBee+华为云IOT:设计一套属于自己的冷链采集系统
FreeRTOS中级篇
揭秘5名运维如何轻松管理数亿级流量系统
关于2022年度深圳市技术攻关重大项目的申报通知
Postgresql源码(65)新快照体系Globalvis工作原理分析
【leetcode】剑指 Offer II 007. 数组中和为 0 的三个数(双指针)
Postgresql snapshot optimization Globalvis new system analysis (performance greatly enhanced)
云图说丨初识华为云微服务引擎CSE
glide set gif start stop
力扣刷题之移动零
Jingdong cloud released a new generation of distributed database StarDB 5.0
从文本匹配到语义相关——新闻相似度计算的一般思路
Introduction to Cosine Distance
relocation R_X86_64_PC32 against,/usr/bin/ld: final link failed: Bad value
2022 CCF中国开源大会会议通知(第三轮)
【微信小程序】NFC 标签打开小程序
NNLM、RNNLM等语言模型 实现 下一单词预测(next-word prediction)
分享即时通讯开发之WebSocket:概念、原理、易错常识、动手实践
Postgresql中的pg_memory_barrier_impl和C的volatile
力扣刷题之分数加减运算(每日一题7/27)