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

二叉树(判断是否为对称二叉树)

题目(力扣):

观察题目,只需判断该二叉树是否对称。

判断二叉树是否对称,就可以换位去判断该二叉树的左子树和右子树是否对称。

这时就可以写一个辅助函数来方便判断。

该函数是判断两颗树是否镜像对称,这时就会发现,我们需要的这个函数和判断两棵树是否相等非常相似只需改变一些条件,(判断树是否相等是左节点的值等于另一棵树左节点的值,右节点的值等于另一棵树右节点的值而镜像则是相反,即左节点的值等于另一棵树右节点的值,右节点的值等于另一棵树左节点的值)

判断两树是否相等:

bool isSameTree(struct TreeNode* p, struct TreeNode* q) {if (p == NULL && q == NULL)return true;else if (p == NULL || q == NULL)return false;else if (p->val != q->val)return false;elsereturn isSameTree(p->left, q->left)&& isSameTree(p->right, q->right);
}

而判断两树是否镜像对称:

只有这两处地方有改变。

其余地方一直相同。

剩余的isSymmetric函数中就是简单的判断了

完整代码:

bool isSameTree(struct TreeNode* p, struct TreeNode* q) {if (p == NULL && q == NULL)return true;else if (p == NULL || q == NULL)return false;else if (p->val != q->val)return false;elsereturn isSameTree(p->left, q->right)&& isSameTree(p->right, q->left);
}
bool isSymmetric(struct TreeNode* root) {if(!root)return true;if((!root->left && root->right) || (!root->right && root->left))return false;else if(root->left && root->right)return isSameTree(root->left,root->right);elsereturn true;
}

题目的提交:

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

相关文章:

  • STM32开发学习(地址映射)
  • 证明E(X+Y) =E(X) + E(Y)
  • ClickHouse入门手册1.0
  • 10个火爆的设计素材网站推荐
  • SQL注入 - CTF常见题型
  • android keylayout键值适配
  • python读取excel自动化生成sql建表语句和java实体类字段
  • Unity求向量A在平面L上的投影向量
  • 人机交互2——任务型多轮对话的控制和生成
  • 【数据结构】八大排序 (三)
  • Redis 命令处理过程
  • python爬虫进阶教程之如何正确的使用cookie
  • 【hacker送书第4期】推荐4本Java必读书籍(各送一本)
  • [密码学]DES
  • 15个超级实用的Python操作,肯定有你意想不到的!
  • GitHub上8个强烈推荐的 Python 项目
  • 什么是依赖倒置原则
  • 异常数据检测 | Python实现oneclassSVM模型异常数据检测
  • using meta-SQL 使用元SQL (3)
  • Spinnaker 基于 docker registry 触发部署
  • 2023亚马逊云科技re:Invent,在开发者板块探究如何利用技术重塑业务
  • JAVA 使用stream流将List中的对象某一属性创建新的List
  • Elasticsearch:ES|QL 函数及操作符
  • SpringBoot——Swagger2 接口规范
  • 网络入门---网络编程预备知识
  • 记录一次YAMLException异常
  • calendar --- 日历相关函数
  • 中国信息通信研究院产业与规划研究所校招一面、二面内容
  • 一些数据库学习的小结
  • 【计算机网络】虚拟路由冗余(VRRP)协议原理与配置