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

【LeetCode】剑指 Offer(10)

目录

题目:剑指 Offer 27. 二叉树的镜像 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过啦!!!

题目:剑指 Offer 28. 对称的二叉树 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过啦!!!

写在最后:


 

题目:剑指 Offer 27. 二叉树的镜像 - 力扣(Leetcode)

b7efd642a1ae4a8081290780c19c0d94.png

题目的接口:

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {
public:TreeNode* mirrorTree(TreeNode* root) {}
};

解题思路:

递归遍历二叉树每个节点的左右孩子,

然后自下而上依次交换左右孩子。

如果到空就返回。

代码:

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {
public:TreeNode* mirrorTree(TreeNode* root) {//遇到空返回if(root == nullptr){return nullptr;}//找左孩子TreeNode* left = mirrorTree(root->left);//找右孩子TreeNode* right = mirrorTree(root->right);//交换左右孩子root->left = right;root->right = left;//返回交换后的根节点return root;}
};

过啦!!!

89d8a9a3b3f047068ec82154e623b0f4.png

题目:剑指 Offer 28. 对称的二叉树 - 力扣(Leetcode)

fe7860fa9d454c55a4056b9e2dc666bb.png

题目的接口:

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {
public:bool isSymmetric(TreeNode* root) {}
};

解题思路:

递归遍历二叉树,

如果二叉树为空,返回true,

我一开始是返回false,然后测试的时候,

测试用例返回的是true,

我就根据题意写代码了。

注意一下空指针的访问问题,

想个办法判断一下,

再比较是否镜像对称即可。

代码:

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {
public:bool is_Symmetric(TreeNode* left, TreeNode* right){//如果左右孩子都为空,证明递归完了,返回trueif(left == nullptr && right == nullptr){return true;}//如果孩子其中有一个为空,返回false(如果不提前判断,之后比较时会错误使用空指针)if(!left || !right){return false;}//比较是否镜像对称if(left->val != right->val){return false;}//递归搜索return is_Symmetric(left->left, right->right) && is_Symmetric(right->left, left->right);}bool isSymmetric(TreeNode* root) {//如果是空树,也是对称(测试用例告诉我的)if(root == nullptr){return true;}//递归搜索左右孩子return is_Symmetric(root->left, root->right);}
};

过啦!!!

8f501509b1cd4b27ba6b8aed091ac7ea.png

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果喜欢本文的话,欢迎点赞和评论,写下你的见解。

如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。

之后我还会输出更多高质量内容,欢迎收看。

 

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

相关文章:

  • 学校AI视频行为分析监测系统 opencv
  • 内存数据库的设计与实现(已在大型项目中应用)
  • Linux基础命令-stat显示文件的状态信息
  • SQL入门DEMO
  • 辉光管时钟学习制作及开源软硬件工程
  • 动手学深度学习(第二版)学习笔记 第三章
  • 冯诺依曼体系结构与操作系统的概念及理解
  • 【深度探讨】如何利用区块链改善公共服务
  • 【打卡】图分析与节点嵌入
  • python元编程详解
  • 为什么文档对 SaaS 公司至关重要?
  • Echarts 实现电池效果的柱状图
  • 计算机网络高频知识点(一)
  • JavaScript split()方法
  • 前端面试题 —— 性能优化
  • 我的周刊(第080期)
  • 操作系统——7.进程的定义,组成,组成方式和特征
  • CRI-O, Containerd, Docker, Postman等概念介绍
  • 【原创】java+swing+mysql设备预约管理系统设计与实现
  • 7、kubernetes(k8s)Dashboard 安装
  • 数学小课堂:虚数的媒介工具作用(虚构一个现实中不存在的概念,来解决现实问题)
  • 3.抽象工厂模式(Abstract Factory)
  • synchronized底层如何实现?什么是锁的升级、降级?
  • node环境搭建以及接口的封装
  • 跟着我从零开始入门FPGA(一周入门系列)第七天
  • Synopsys Sentaurus TCAD系列教程之--Sde概述
  • 计算结构体大小
  • 第二十一篇 数据增强
  • 记一次线上es慢查询导致的服务不可用
  • 分布式之ZAB协议