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

剑指offer面试题28:对称的二叉树

#试题28:对称的二叉树

题目:

请设计一个函数判断一棵二叉树是否 轴对称

示例 1:

img

输入:root = [6,7,7,8,9,9,8]
输出:true
解释:从图中可看出树是轴对称的。

示例 2:

img

输入:root = [1,2,2,null,3,null,3]
输出:false
解释:从图中可看出最后一层的节点不对称。

思路:

1.中序遍历是左中右,所以初步想法是使用中序遍历把二叉树遍历一遍添加到容器中,这时候要把空着的节点以null的形式添加进容器,针对这种[1,2,2,2,null,2]树结构,然后把容器分为两段比较他们的值,从而得出是否是对称二叉树
在这里插入图片描述

2.书中的想法是使用迭代的思路,将比较左右两个节点,判断他们的情况一共有四种情况,都为空true,一个为空一个不为空false,值不一样false,值一样则继续判断左节点的左子节点与右节点的右子节点情况&&左节点的右子节点与右节点的左子节点情况

代码:

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:bool check(TreeNode* root_left,TreeNode* root_right){if(root_left==nullptr&&root_right==nullptr)return true;if(root_left==nullptr || root_right==nullptr)return false;if(root_left->val!=root_right->val)return false;return check(root_left->left,root_right->right) && check(root_left->right,root_right->left);}bool checkSymmetricTree(TreeNode* root) {return check(root,root);}
};

leetcode101题

考点:

  1. 考察对二叉树的理解,实质上是利用树的遍历算法解决问题。
  2. 考察思维能力,树的对称是一个抽象的概念,需要微秒在短时间内清楚判断对称的步骤并转化为代码
http://www.lryc.cn/news/309288.html

相关文章:

  • JS:原型与原型链(附带图解与代码)
  • 电子电器架构新趋势 —— 最佳着力点:域控制器
  • C++记录
  • ConcurrentModificationException并发修改异常
  • 小程序事件处理
  • 蓝桥杯-单片机组基础6——定时计数器与外部中断混合使用(附小蜜蜂课程代码)
  • 交友社交软件开发-php交友聊天系统-
  • vue2 开发记录
  • QML中表格中数据获取
  • 【mysql 数据库事务】开启事务操作数据库,写入失败后,不回滚,会有问题么? 这里隐藏着大坑,复试,面试时可以镇住面试老师!!!!
  • Go语言的100个错误使用场景(55-60)|并发基础
  • 钉钉机器人发送折线图卡片 工具类代码
  • 基于springboot的大型商场应急预案管理系统论文
  • 强化学习嵌入Transformer(代码实践)
  • 决定西弗吉尼亚州地区版图的关键历史事件
  • LeetCode_22_中等_括号生成
  • Verilog(未完待续)
  • 【Linux实践室】Linux初体验
  • Flutter中高级JSON处理:使用json_serializable进行深入定制
  • 华为OD技术面试案例4-2024年
  • 【TestNG】(4) 重试机制与监听器的使用
  • “智农”-高标准农田
  • 利用 lxml 库的XPath()方法在网页中快速查找元素
  • nginx---------------重写功能 防盗链 反向代理 (五)
  • unity shaderGraph实例-物体线框显示
  • 分类问题经典算法 | 二分类问题 | Logistic回归:公式推导
  • redis实现分布式全局唯一id
  • Sora引发安全新挑战
  • Android 14.0 Launcher3定制化之桌面分页横线改成圆点显示功能实现
  • SemiDrive E3 MCAL 开发系列(3)– Wdg 模块的使用