当前位置: 首页 > 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.lryc.cn/news/590111.html

相关文章:

  • 工业相机GigE数据接口的优势及应用
  • [特殊字符] 第1篇:什么是SQL?数据库是啥?我能吃吗?
  • SQL,在join中,on和where的区别
  • 锁存型霍尔 IC:定义、应用与优势全解析
  • Git问题排查与故障解决详解
  • 前端性能与可靠性工程:前端韧性工程 - 优雅降级与离线支持
  • 《设计模式之禅》笔记摘录 - 7.中介者模式
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘tkinter’问题
  • 网络编程/Java面试/TCPUDP区别
  • 【代码】Matlab鸟瞰图函数
  • AsyncRelayCommand示例学习
  • 测试开发工作日常用的提示词分享
  • XPath注入攻击详解:原理、危害与防御
  • 智能工厂生产设备状态检测算法
  • 基于多源时序特征卷积网络(MSTFCN)的光伏功率预测模型
  • 基于springboot+vue的酒店管理系统设计与实现
  • 施易德门店管理系统应用案例分析:零售女装品牌伊芙丽的全球化布局
  • PandaWiki与GitBook深度对比:AI时代的知识管理工具,选谁好?
  • 从电子管到CPU
  • Swarm Network 选择 Walrus 实现可验证 AI
  • 浏览器自动化方案
  • 小架构step系列16:代码文档
  • 共生型企业:驾驭AI自动化(事+AI)与人类增强(人+AI)的双重前沿
  • 道可云人工智能每日资讯|天津市人工智能(AI+信创)创新生态联盟成立
  • 面试150——数组字符串
  • 区块链之拜占庭容错算法——Practical Byzantine Fault Tolerance(PBFT)
  • 移动支付方式全解析:无卡支付、快捷支付、认证支付、协议支付与代扣的区别
  • 堆排序算法详解:原理、实现与C语言代码
  • 网络安全(初级)(Python实现sql自动化布尔盲注)
  • 牛客:HJ25 数据分类处理[华为机考][哈希][字符串]