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

二叉树层序遍历6

INT_MIN的用法:

INT_MIN是C/C++ 中的一个宏常量 ,在  <limits.h>  (C++ 中也可使用  <climits>  )头文件中定义,代表  int  类型能表示的最小整数值 。其用法主要体现在以下方面:

1.初始化变量

在需要找出数据集合(如数组、链表等)中的最大值场景里,常将用于记录最大值的变量初始化为  INT_MIN  。例如:

#include <iostream>
#include <limits.h>
int main() {int arr[] = {10, 5, 20, 8};int maxVal = INT_MIN;for (int num : arr) {if (num > maxVal) {maxVal = num;}}cout << "数组中的最大值是: " << maxVal << endl; return 0;
} 

这样初始化能保证在遍历第一个元素时,无论其值是多少,都可更新  maxVal  ,进而正确找出集合中的最大值。

2.边界条件判断

在编写算法或程序时,可用于设置边界条件。比如在判断一个整数运算结果是否合法时,可将结果与  INT_MIN  比较。假设编写一个函数计算两个  int  类型数相加,为防止溢出,可进行如下判断:

#include <iostream>
#include <limits.h>
int add(int a, int b) {if (b > 0 && a > INT_MAX - b) { // 防止正溢出// 处理溢出情况,如返回特定值或抛出异常cerr << "加法运算发生正溢出" << endl;return INT_MAX; }if (b < 0 && a < INT_MIN - b) { // 防止负溢出cerr << "加法运算发生负溢出" <<endl;return INT_MIN; }return a + b;
}
int main() {int num1 = 1000000000;int num2 = 2000000000;int result = add(num1, num2);cout << "计算结果: " << result << endl; return 0;
} 

3. 检测溢出

在进行整数运算时,通过与  INT_MIN  比较来检测是否发生下溢。例如:

#include <iostream>
#include <limits.h>
int main() {int num = INT_MIN;int sub = num - 1;if (sub > num) { // 正常减法结果应更小,若出现变大则发生下溢std::cerr << "发生下溢" << std::endl;}return 0;
} 

515. 在每个树行中找最大值

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

示例1:

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

示例2:

输入: root = [1,2,3]
输出: [1,3]
class Solution {
public:vector<int> largestValues(TreeNode* root) {queue<TreeNode*>que;if(root!=NULL) que.push(root);vector<int>result;while(!que.empty()){int size=que.size();int maxValue=INT_MIN;for(int i=0;i<size;i++){TreeNode*node=que.front();que.pop();maxValue=node->val>maxValue?node->val:maxValue;if(node->left) que.push(node->left);if(node->right) que.push(node->right);}result.push_back(maxValue);}return result;}
};

相关文章:

  • 25Yunxi期中
  • Java 并发编程高级技巧:CyclicBarrier、CountDownLatch 和 Semaphore 的高级应用
  • C语言-枚举
  • 【打卡】树状数组的操作
  • Linux系统移植①:uboot概念
  • WSL 基础命令
  • DeepSeek+白果AI论文:开启答辩PPT生成的「智能双引擎」时代
  • AI大模型(三)openAI大模型应用
  • 《100天精通Python——基础篇 2025 第20天:Thread类与线程同步机制详解》
  • 『uniapp』uni-share 分享功能 使用例子(保姆级图文)
  • java线程中断的艺术
  • 绿色屋顶和墙壁行业2025数据分析报告
  • 【批量文件夹重命名】如何按照Excel表格对应的关系,批量一对一的重命名文件夹,文件夹按照对应映射关系一对一改名
  • 打破产品思维--启示录:打造用户喜欢的产品--实战6
  • RocketMq的消息类型及代码案例
  • [C++面试] 基础题 11~20
  • 归一化 超全总结!!
  • 编译rk3568的buildroot不起作用
  • pvlib(太阳轨迹)
  • 基于CodeBuddy实现本地网速的实时浏览小工具
  • 网站制作论坛/百度做网站
  • 微信公众号做的网站/哪个推广网站好
  • 网站效果图可以做动态的嘛/网站优化排名优化
  • 浙江省台州市做网站多少钱/常见的网络推广方式有哪些
  • 南充市建设厅官方网站/搜索seo优化托管
  • 市政府门户网站建设/一链一网一平台