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

猫眼娱乐IOS开发一面手撕算法

力扣:103.二叉树的锯齿状层序遍历

主要就是bool变量判断状态是从左往右还是从右往左,如果是从右向左就使用reverse反转一下。

bool变量确保第一层根节点是正序(本质也是从左向右了),第二层是从左向右,第三层是从右向左(使用reverse反转),后面以此类推。

这里不做解释了,因为面过的手撕题下次不想再做错了,这里做下笔记,时刻提醒自己曾经栽在这个题目上。

面试官给出的题目太含糊了,没太清楚他是要将树本身的层序进行反转,还是只将遍历的结果输出锯齿状,当时脑子已经宕机了,也是最近熬夜没睡好的原因。

vector<vector<int>> func(TreeNode* root){vector<vector<int>> vec2;queue<TreeNode*> q;q.push(root);if(!root) return vec2;bool flag=true;//判断从左向右还是从右向左while(!q.empty()){int n=q.size();//一定要声明出来,因为每一次的队列的大小都会发生变化,即:树的每一层元素个数不同vector<int> vec1;for(int i=0;i<n;i++){auto node=q.front(); q.pop();vec1.push_back(node->val);if(node->left) q.push(node->left);if(node->right) q.push(node->right);}if(flag==false) reverse(vec1.begin(),vec1.end()); //如果不是偶数层就忽略这行,是就执行vec2.push_back(vec1);flag=!flag;//奇数层之后就是偶数层,从true变false}return vec2;
}

http://www.dtcms.com/a/283005.html

相关文章:

  • 嵌入式学习笔记--MCU阶段--DAY06DHT11练习
  • AR智能巡检:电力行业数字化转型的“加速器”
  • 基于Llama的RAG 3种模型配置方法
  • 51c自动驾驶~合集7
  • 基于C#开发solidworks图库中文件(SLDPRT,SLDASM,SLDDRW等)转换为HTML和PDF,提供批量和实时转换
  • AI产品经理面试宝典第28天:自动驾驶与智慧交通融合面试题与答法
  • 自动驾驶激光3D点云处理系统性阐述及Open3D库函数应用
  • MR 处于 WIP 状态的WIP是什么
  • 小模型的价值重估:从“缩水版DeepSeek”到AI系统的基础执行单元20250716
  • Linux 挂载新磁盘导致原文件被隐藏解决方案
  • 【代码】Matlab鸟瞰图函数
  • sqli-labs靶场通关笔记:第23关 注释符过滤
  • 叉车机器人如何实现托盘精准定位?这项核心技术的原理和应用是什么?
  • 静默的田野守护者:Deepoc具身智能如何让除草机器人读懂大地密语
  • Mybatis08-使用pageHelper
  • 本地 AI 问答机器人搭建项目(Ollama + Qwen-7B + LangChain + FastAPI)
  • AI对话聊天与桌宠工具调研报告
  • 【案例分享】基于FastCAE-Acoustics软件对车门进行噪声预测
  • 移动平板电脑安全管控方案
  • 祥云系统开源云商城程序全开源版 个人程序云商城(源码下载)
  • 前端学习7:CSS过渡与动画--补间动画 (Transition) vs 关键帧动画 (Animation)
  • xss-lab1-8关
  • AdsPower 功能详解 | 应用中心使用指南:插件统一管理更高效、更安全!
  • [NOIP][C++] 树的重心
  • 精彩代码分析-1
  • 深入探讨机器学习中的过拟合:从VC维到正则化的贝叶斯视角
  • Alamofire 网络请求全流解析,通俗易懂
  • 降本增效利器:汽车制造中EtherCAT转PROFIBUS DP网关应用探析
  • Linux权限管理:玩转root与用户组
  • 前端 oidc-client 静默刷新一直提示:Error: Frame window timed out 问题分析与解决方案