当前位置: 首页 > article >正文

力扣515:在每个树行中找最大值

给定一棵二叉树的根节点 root ,请找出该二叉树中每一层的最大值。

示例1:

输入: root = [1,3,2,5,3,null,9]
输出: [1,3,9]

示例2:

输入: root = [1,2,3]
输出: [1,3]

提示:

  • 二叉树的节点个数的范围是 [0,104]
  • -231 <= Node.val <= 231 - 1

代码:

/**
 * 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().
 */
#define MAX_SIZE 10000
int* largestValues(struct TreeNode* root, int* returnSize) {
    *returnSize=0;//表示层次遍历的层次,也可以看做最后输出的最大值有多少个
    if(root==NULL){
        return NULL;
    }
    int *result=(int *)malloc(sizeof(int*)*MAX_SIZE);//存放输出的最大值数组
    struct TreeNode *Queue[MAX_SIZE];
    int rear=0,front=0;
    Queue[rear++]=root;
    while(front<rear){
    	int temp=rear;
    	int max=INT_MIN;
    	while(front<temp){
    		struct TreeNode *p;
    		p=Queue[front++];
    		max=fmax(max,p->val);
    		if(p->left!=NULL) Queue[rear++]=p->left;
    		if(p->right!=NULL) Queue[rear++]=p->right;
		}
		result[(*returnSize)++]=max;
	} 
	return result;
}


http://www.kler.cn/a/399280.html

相关文章:

  • Ceph PG(归置组)的状态说明
  • 鸿蒙中如何实现图片拉伸效果
  • 时间序列分析——移动平均法、指数平滑法、逐步回归法、趋势外推法等(基于Python实现)
  • Rewar Model的输出(不包含训练)
  • 计算机视觉 1-8章 (硕士)
  • 【书生大模型实战营 闯关材料】入门岛:第4关 玩转HF/魔搭/魔乐社区
  • 云原生周刊:Istio 1.24.0 正式发布
  • css:盒子模型
  • 【GAT】 代码详解 (1) 运行方法【pytorch】可运行版本
  • React Native 全栈开发实战班 -原生功能集成之相机与图片
  • 希尔排序(C语言)
  • 基于STM32设计的大棚育苗管理系统(4G+华为云IOT)_265
  • 易考八股文之Elasticsearch合集
  • 微信小程序自定义顶部导航栏(适配各种机型)
  • IOException: Broken pipe与IOException: 远程主机强迫关闭了一个现有的连接
  • C语言项⽬实践-贪吃蛇
  • Asp.net Mvc 电脑销售系统
  • @ComponentScan:Spring Boot中的自动装配大师
  • Ubuntu下Xshell连接腾讯云服务器
  • 第26天进程(一)
  • 创建型设计模式与面向接口编程
  • w040基于web的社区医院信息平台
  • 【MYSQL】锁详解(全局锁、表级锁、行级锁)【快速理解】
  • STL关联式容器介绍
  • 预处理(1)(手绘)
  • 【Axure原型分享】轮播表格_开始暂停效果