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

C语言 | Leetcode C语言题解之第101题对称二叉树

题目:

题解:

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     struct TreeNode *left;*     struct TreeNode *right;* };*/
bool isSymmetric(struct TreeNode* root) {if (root == NULL) return true;//如果根为空直接返回truestruct TreeNode* p = root->left;struct TreeNode* q = root->right;//一个指向左子树,一个指向右子树struct TreeNode** stk1 = malloc(550 * sizeof(struct TreeNode));struct TreeNode** stk2 = malloc(550 * sizeof(struct TreeNode));//创建栈int top1 = 0, top2 = 0;//创建栈顶指针while ((p != NULL || q != NULL) || (top1 != 0 && top2 != 0)) {//栈不空或结点不全为空时循环if (p != NULL && q != NULL) {//两个结点都不空时if (p->val != q->val) return false;//结点值不同直接falsestk1[top1++] = p;stk2[top2++] = q;//入栈p = p->left;q = q->right;//指针镜像移动}else if (p == NULL && q == NULL) {//两个结点都为空时p = stk1[--top1];q = stk2[--top2];//接收栈顶结点p = p->right;q = q->left;//指针镜像移动}else return false;//如果一个结点为空而另一个不为空时,直接false}return true;//经过以上处理后,此时栈已经空了,并且所有结点已经镜像遍历并比较过了,直接返回true}
http://www.lryc.cn/news/355932.html

相关文章:

  • TTime:截图翻译/OCR
  • 【哈希】闭散列的线性探测和开散列的哈希桶解决哈希冲突(C++两种方法模拟实现哈希表)(1)
  • 四川农业大学Java实训项目圆满收官,汇智知了堂引领学子实践创新
  • JavaScript的当前时间设置及Date的运算
  • 网络安全管理制度
  • 零基础,想做一名网络安全工程师,该怎么学习?
  • 【大模型部署】在C# Winform中使用文心一言ERNIE-3.5 4K 聊天模型
  • 【Unity】Unity项目转抖音小游戏(三)资源分包,抖音云CDN
  • SQLite查询优化
  • UE4编辑器End键Actor贴近地面
  • 2024儿科常用心理评估量表汇总,附详细操作步骤与评定标准
  • Python 脚本化 Git 操作:简单、高效、无压力
  • 手搓顺序表(C语言)
  • 一文搞懂oracle事务提交以及脏数据落盘的原则
  • OceanBase:列存储
  • Rust:WIndows 环境下交叉编译 Linux 平台程序
  • 从零学爬虫:使用比如说说解析网页结构
  • C#数据类型变量、常量
  • Java高级面试问题及答案
  • 出现 Transaction rolled back because it has been marked as rollback-only 解决方法
  • 数据结构算法题day03
  • 深入分析C#中的“编写器”概念——代码修改、注解与重构
  • uview1.0 u-form表单回显校验不通过
  • 监控员工电脑的软件有哪些,不得不说这几款电脑监控软件太好用了
  • 【MySQL精通之路】索引优化(2)
  • VUE3 学习笔记(5):数组处理、计算属性与函数、class与Style绑定
  • 基于springboot实现大学生一体化服务平台系统项目【项目源码+论文说明】
  • 惠海 H6902B 升压恒流芯片 太阳能 风扇灯 应急灯 支持3.7V 5V 7.4V
  • 体验SmartEDA的高效与便捷,电子设计从未如此简单
  • LangChain笔记