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

leetcode 每日一题复盘(10.9~10.15)

leetcode 101 对称二叉树 

这道题一开始想是用层序遍历,看每一层是否都对称,遇到一个问题就是空指针(子树为空)无法记录下来,同时会导致操作空指针的问题,因此需要修改入队条件,并用一个标志去表示空指针

            vector<int>numv;for(int i=0;i<size;i++){TreeNode*front=que.front();que.pop();if(front)numv.emplace_back(front->val);if(!front)numv.emplace_back(-101);if(front)que.push(front->left);if(front)que.push(front->right);}

修改后入队条件不再是看入队元素是否为空,而是看队列中的元素是否为空,这样就可以将空指针也入队同时解决操作空指针的问题,如果指针为空,那么用-101标志他(子树的值范围是-100~100)

这样修改过后运行效率还可以,但是并没有完成理解这道题

正确的解法是用类似层序遍历但不是层序遍历的思想,将左子树的左孩子和右子树的右孩子比较(外侧),将左子树的右孩子和右子树的左孩子比较(内侧),每一层(除第一层)都比较内外侧,如果不同就false,每次出队两个元素

树可以分成3种情况,都无孩子,一个孩子,和两个孩子

两个孩子则比较大小,一个孩子直接false,都无孩子即位置对称,继续下次循环

http://www.lryc.cn/news/186159.html

相关文章:

  • 【云计算网络安全】DDoS 缓解解析:DDoS 攻击缓解策略、选择最佳提供商和关键考虑因素
  • 如何巧用AI智能技术,让文物不再“无人问津”?
  • 一天一八股——SSL/TLS协议
  • SpringCloud学习笔记-Eureka服务的搭建
  • css如何实现页面布局与五种实现方式
  • cv2.split函数与cv2.merge函数
  • Vue--1.7watch侦听器(监视器)
  • 序列:全序关系
  • 100M服务器能同时容纳多少人访问?
  • Javascript 笔记:函数调用与函数上下文
  • 【WebService】C#搭建的标准WebService接口,在使ESB模版作为参数无法获取参数数据
  • Sqlserver关于tempdb临时数据库文件个数的最佳实践
  • 【Java】微服务——微服务介绍和Eureka注册中心
  • C++ virtual 虚函数 虚基类
  • redis分布式秒杀锁
  • 【Redis】String内部编码方式
  • 川西旅游网系统-前后端分离(前台vue 后台element UI,后端servlet)
  • Paddle使用pyinstaller打包出错的解决方法
  • 【Java acm】特殊输入
  • 在Ubuntu 20.04搭建最小实验环境
  • 使用uwsgi部署Flask
  • Android平台实现lottie动画
  • JAVA练习百题之求矩阵对角线之和
  • MEM备考打卡
  • 短视频矩阵源码开发部署---技术解析
  • 百度小程序制作源码 百度引流做关键词排名之技巧
  • 【计算机组成 课程笔记】7.3 高速缓存 Cache
  • vscode搭建c/c++环境
  • macOS Sonoma 14.0(23A344) 正式版带 OpenCore 0.9.6 和 FirPE 三分区镜像
  • 神经网络(MLP多层感知器)