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

226. 翻转二叉树

题目

给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。

解题思路

DFS 广度有限搜索
层序遍历二叉树,遍历过程中交换左右子树

代码

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     struct TreeNode *left;*     struct TreeNode *right;* };*//* DFS 广度有限搜索 层序遍历二叉树,遍历过程中交换左右子树 */
struct TreeNode* invertTree(struct TreeNode* root) {if(root == NULL){return root;}/* 初始化数组,用于存放当前遍历层的节点 */struct TreeNode** queue = (struct TreeNode**) malloc(sizeof(struct TreeNode*) * 100);int top = 0, rear = 0;// 根节点入队queue[rear++] = root;while(top != rear){// 获得当前遍历层的节点个数int count = rear - top;// 对当前层的每个节点进行遍历,执行交换左右子树操作while(count > 0){// 节点出队struct TreeNode* cur = queue[top++];/* 交换左右子树 */if(cur->left != NULL || cur->right != NULL){struct TreeNode* temp = cur->left;cur->left = cur->right;cur->right = temp;}/* 下一层节点入队 */if(cur->left != NULL){queue[rear++] = cur->left;}if(cur->right != NULL){queue[rear++] = cur->right;}count--;}}free(queue);return root;}

改进代码

http://www.xdnf.cn/news/16353.html

相关文章:

  • C语言(长期更新)第6讲:函数
  • (LeetCode 每日一题) 2210. 统计数组中峰和谷的数量 (数组)
  • 【RAG技术权威指南】从原理到企业级应用实践
  • Spring Boot音乐服务器项目-查询音乐模块
  • 【自动化运维神器Ansible】Ansible常用模块之archive模块详解
  • QT---概览
  • Spring AI 学习笔记
  • Datawhale 科大讯飞AI大赛(模型蒸馏)
  • 电科金仓 KingbaseES 深度解码:技术突破・行业实践・沙龙邀约 -- 融合数据库的变革之力
  • i节点学习
  • 7月27日星期日今日早报简报微语报早读
  • 从0开始学linux韦东山教程Linux驱动入门实验班(6)
  • Flink2.0学习笔记:Stream API 常用转换算子
  • Java面试实战:电商高并发与分布式事务处理
  • QT开发---网络编程下
  • JVM工具
  • Item16:成对使用new和delete时要采取相同形式
  • Milvus 实战全流程
  • 【重学数据结构】堆 Heap - 最小堆最大堆
  • Qt GUI缓存实现
  • SpringIoCDI
  • Adobe Animate中文版 v2024.24.0.10.14
  • python---类型转换
  • Flink窗口:解锁流计算的秘密武器
  • 9.SpringBoot Web请求参数绑定方法
  • RTSP|RTMP播放器 in Unity:开源不够用?从工程视角重新定义播放器选型
  • 【优选算法】BFS解决最短路问题(单源)
  • LeetCode 1577.数的平方等于两数乘积的方法数
  • Spring 解析 XML 配置文件的过程(从读取 XML 到生成 BeanDefinition)
  • HarmonyOS NEXT 系列之规范开发三方共享包