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

力扣算法ing(36 / 100)

3.23 226.翻转二叉树

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

示例 1:

img

输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]

示例 2:

img

输入:root = [2,1,3]
输出:[2,3,1]

示例 3:

输入:root = []
输出:[]

提示:

  • 树中节点数目范围在 [0, 100]
  • -100 <= Node.val <= 100

我的思路:

子翻转,根没有翻转

先根遍历

if(head.left && head.right)

有孩子的时候

temp

temp = head.left

head.left = head.right

head.right = temp

我的代码:

function invertTree(root: TreeNode | null): TreeNode | null {
    if (root.left === null  && root.right === null) {
        return root;
    }

    // 交换左右子节点
    let temp = root.left;
    root.left = root.right;
    root.right = temp;

    // 递归地反转左右子树
    invertTree(root.left);
    invertTree(root.right);

    return root;
};

执行出错!!!

原因:如果root为null,直接调用root.left或root.right会导致类型错误,因为null没有这些属性。

//如果根节点为null,直接返回null

//if (root === null) {

//return null;

//}

最后代码:

function invertTree(root: TreeNode | null): TreeNode | null {
    // 如果根节点为null,直接返回null
    if (root === null) {
        return null;
    }

    // 交换左右子节点
    let temp = root.left;
    root.left = root.right;
    root.right = temp;

    // 递归地反转左右子树
    invertTree(root.left);
    invertTree(root.right);

    return root;
};
啦啦啦!轻松解决

相关文章:

  • 神经网络知识点整理
  • 中间件漏洞—Apache
  • 在线监测工具介绍 -- Arthas
  • 探索CSS3中那些不常用但特别强大的属性和属性值
  • JavaScript 比较运算符
  • 第二十章:类型属性的重载_《C++ Templates》notes
  • 【Go 】Go 语言中的 channel介绍
  • K8S学习之基础四十四:k8s中部署Kibana
  • vue3 ts 注册全局组件
  • N列股票收盘价为起点的马科维茨(Markowitz)均值—方差理论
  • 低配电脑畅玩《怪物猎人:荒野》,ToDesk云电脑优化从30帧到144帧?
  • 【C++】 --- 类和对象(中)
  • Java UDP聊天室搭建指南
  • Vulnhub Momentum系列靶机合集
  • 施耐德 Unity Pro 项目配置
  • 【SG90舵机】arduino uno控制SG90舵机
  • GraphMLP: A Graph MLP-Like Architecture for 3D Human Pose Estimation
  • 各类容器技术深度解析:容器全解
  • 【设计模式】外观模式
  • WSL2 与双系统的对比
  • 潘功胜发布会答问五大要点:除了降准降息,这些政策“含金量”也很高
  • 《中国医药指南》就涉宫颈癌等论文出现男性病例致歉:辞退涉事编辑
  • 自我田野|从城市搬到农村生活,我找回了真实和附近
  • 陈燮阳从艺60周年:指挥棒不停,心跳就不会老去
  • 严正交涉!我驻日使馆:如日方采取新的挑衅举动,中方必坚决反制
  • 3:0战胜日本队,中国羽毛球队挺进2025苏迪曼杯决赛