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

力扣HOT100之二叉树:226. 翻转二叉树


这道题很简单,用递归来做,对于一个根节点来说,有两种情况我们不需要翻转:一是根节点为空,二是根节点为叶子节点。这很容易理解,当传入的节点不满足上面的两种情况时,我们就需要做一个翻转,这里我们需要额外定义一个变量来保存当前节点的左孩子(或右孩子)节点,然后我们将其左右孩子再调用invertTree()函数,再进行互换,然后返回根节点即可。

/*** 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:TreeNode* invertTree(TreeNode* root) {//用递归来做//终止条件,当根节点为空节点或叶子节点时则无需翻转,直接返回nullptrif(!root || (!root -> left && !root -> right)) return root;  //单层递归逻辑主体TreeNode* temp = root -> left;  //提前保存,避免被覆盖root -> left = invertTree(root -> right);root -> right = invertTree(temp);return root;}
};
http://www.xdnf.cn/news/404749.html

相关文章:

  • WSL-Ubuntu 中安装 Git LFS 记录
  • 网络编程epoll和udp
  • 华为防火墙配置与网络协议实战指南:从基础到高阶排查
  • 破局智算瓶颈:400G光模块如何重构AI时代的网络神经脉络
  • 大模型的实践应用41-天气预测与分析决策系统:Qwen3(32B)+langchain框架+MCP(大模型上下文协议)+RAG+传统算法
  • RabbitMQ高并发秒杀、抢购系统、预约系统底层实现逻辑
  • ArcGIS+InVEST+RUSLE:水土流失模拟与流域管理的高效解决方案;水土保持专题地图制作
  • 《Python星球日记》 第63天:文本方向综合项目(新闻分类)
  • 危化品安全员职业发展方向的优劣对比
  • 人工智能时代:解锁职业新身份,从“认证师”到“工程师”的进阶之路
  • 图灵爬虫练习平台第九题js逆向
  • 电力系统静态安全因素与动态安全因素的区别及具体分类
  • matlab计算天线的近场和远场
  • ThreadLocal原理分析--结合Spring事务
  • 产品设计基石--用户体验要素--实战4
  • 【课题推荐】基于改进遗传算法的公交车调度排班优化研究与实现方案
  • PID与模糊PID系统设计——基于模糊PID的水下航行器运动控制研究Simulink仿真(包含设计报告)
  • 在Web应用中集成Google AI NLP服务的完整指南:从Dialogflow配置到高并发优化
  • Codeforces Round 1024 (Div. 2)(A-D)
  • 1.8 梯度
  • FanControl(电脑风扇转速控制软件) v224 中文版
  • Blueprints - Gameplay Message Subsystem
  • js 字符串中的特殊字符全部替换成定义对象里面key对应的value值(基础篇)
  • C++ string比较、string随机访问、string字符插入、string数据删除
  • vue-pdf-embed预览PDF
  • mac M2能安装的虚拟机和linux系统系统
  • 寻找远程桌面管理器的5个关键功能
  • Spring Boot 使用Itext绘制并导出PDF
  • Docker Volumes
  • 一周学完计算机网络之三:1、数据链路层概述