当前位置: 首页 > 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;}
};

相关文章:

  • arduinoIDE核心库更新导致的ESP32开发板神秘接口更换和三方库冲突
  • JVM——方法内联
  • zuoyyyeee
  • hdfs-客户端操作-文件上传
  • Java中String字符串
  • STM32实现循环队列
  • AutoDL租用服务器教程
  • uniapp引入七鱼客服微信小程序SDK
  • cache state
  • 自动化测试与功能测试详解
  • 杨校老师项目之基于SSM与JSP的鲜花销售系统-【成品设计含文档】
  • 趣谈Ai各种模型算法及应用
  • 大模型剪枝技术介绍
  • 深度策略梯度算法PPO
  • 基于STM32、HAL库的BMP581气压传感器 驱动程序设计
  • git如何将本地 dev 分支与远程 dev 分支同步
  • Excel表的导入与导出
  • 浙江大学 deepseek 公开课 第三季 第3期 - 陈喜群 教授 (附PPT下载) by 突破信息差
  • 【C++】cout的格式输出
  • 特斯拉AI布局:从自动驾驶到人形机器人的野心
  • 警方通报:某博主遭勒索后自杀系自导自演,已立案调查
  • 退休10年后,70岁成都高新区管委会原巡视员王晋成被查
  • 何谓“战略稳定”:“长和平”的实现基础与机制
  • 上海与世界|环城生态公园带是上海绿色发展新名片
  • 姚洋将全职加盟上海财经大学,担任滴水湖高级金融学院院长
  • 侧记|青年为何来沪创新创业?从这一天寻找答案