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

【LeetCode】【算法】226. 翻转二叉树

LeetCode 226. 翻转二叉树

题目描述

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

思路

思路:翻转二叉树实际上就是递归地翻转左二叉,然后递归地翻转右二叉,再在中间处理左右二叉翻转,就是左右中,使用后序遍历即可。

代码

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public TreeNode invertTree(TreeNode root) {
        // 应该是DFS后回溯,后序遍历,左右中(在中交换)

        // 终止条件
        if (root == null) return null;

        // 后序遍历
        TreeNode leftNode = invertTree(root.left);
        TreeNode rightNode = invertTree(root.right);
        // 中间节点交换
        TreeNode tmp = leftNode;
        root.left = rightNode;
        root.right = tmp;
        // 交换结束返回root
        return root;
    }
}

http://www.kler.cn/a/383696.html

相关文章:

  • 揭秘全向轮运动学:机动艺术与上下位机通信的智慧桥梁
  • Unity网络开发基础(part5.网络协议)
  • 训练和部署Qwen2.5,实战教程步骤,训练qwen2.5教程,vLLM,Open WebUI,LLaMA-Factory
  • Elasticsearch+kibana+filebeat的安装及使用
  • 越权访问漏洞
  • HTML5:网页开发的新纪元
  • echarts图表的使用(常用属性)
  • 数据特征工程:如何计算Teager能量算子(TEO)? | 基于SQL实现
  • 使用LoRA 对千问70B模型进行微调
  • Jupyter Notebook添加kernel的解决方案
  • 汇聚全球前沿科技产品,北京智能科技产业展览会·世亚智博会
  • 人工智能驱动金融市场:民锋智能分析引领精准投资
  • Java:多态的调用
  • 使用 Spring Security 和 JWT 实现安全认证机制
  • MySQL记录锁、间隙锁、临键锁(Next-Key Locks)详解
  • PostgreSQL (八) 创建分区
  • 如何选择适合CMS运行的服务器?
  • MySQL 8.0在windows环境安装及配置
  • STM32项目---水质水位检测
  • nuPlan最新SOTA,香港科技大学发布基于学习决策范围内的规划PlanScope
  • Java 网络编程(一)—— UDP数据报套接字编程
  • mysql数据同步到sql server
  • SpringBoot在线教育系统:云部署策略
  • 4.3 Linux的中断处理流程
  • 网络安全:数字时代的防护盾
  • Linux系统编程学习 NO.10——进程的概念(1)