蓝桥与力扣刷题(226 翻转二叉树)

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

示例 1:

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

示例 2:

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

示例 3:

输入: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)1.判断根节点是否为空,为空直接返回2.使用先序遍历(根左右)将左右子树一一调换*/return dfs(root);}public TreeNode dfs(TreeNode node){if(node == null){return null;}//创建中间变量temp(两杯水的交换)交换左右子树TreeNode temp = node.left;node.left = dfs(node.right);node.right = dfs(temp);return node;}
}

总结:解答这道题使用递归思想最为高效,难点就在于如何将左右子树进行转换,由此可以联想到两杯水的交换,创建一个中间变量来达到左右子树的交换。这道题也可以利用栈stack的先进后出特性来做,那么怎么遍历存放进栈就极为重要,在这里存放的话按照(根右左)的进栈顺序,再一一出栈也可以得到翻转后的二叉树。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/69568.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# OpenCV机器视觉:OSTU算法实现背景差分的自适应分割

在一个热闹的科技公司里,阿强是一个负责图像分析的员工。他的日常工作就是从各种复杂的图像中提取出有用的信息,可这可不是一件轻松的事情哦 最近,阿强接到了一个艰巨的任务:要从一堆嘈杂的监控图像中分离出运动的物体&#xff0c…

amis组件crud使用踩坑

crud注意 过滤条件参数同步地址栏 默认 CRUD 会将过滤条件参数同步至浏览器地址栏中,比如搜索条件、当前页数,这也做的目的是刷新页面的时候还能进入之前的分页。 但也会导致地址栏中的参数数据合并到顶层的数据链中,例如:自动…

解决 ollama._types.ResponseError 问题

原因 在对问题进行分析后,我认为原因是之前为了在服务器上下载模型,我设置了启动时自动配置的网络代理。然而,ollama在运行时采用了该代理配置,而不是默认的API URL(“http://localhost:11434”)。因此&am…

用户认证实验

一,拓扑图: 第一步:先开启防火墙 第二步:sw2配置: [sw2] vlan batch 10 20 interface GigabitEthernet0/0/2 port link-type access port default vlan 10 interface GigabitEthernet0/0/3 port link-type access port defau…

活动预告 | 为 AI 新纪元做好准备:助力安全的业务转型

课程介绍 随着现代办公模式的不断演变和 AI 技术的迅速发展,企业在享受效率提升的同时,也面临着信息安全与数据保护的严峻挑战。在利用 AI 技术释放业务潜力的同时,如何确保数据质量与安全已成为企业发展的关键议题。 在本次线上课程中&…

【再谈设计模式】中介者模式 - 协调对象间交互的枢纽

一、引言 在软件工程,软件开发过程中,复杂的软件系统,对象之间的交互往往错综复杂。当众多对象相互依赖、频繁通信时,系统的耦合度会急剧上升,导致代码难以维护、扩展和理解。就像在一个大型社交聚会中,如果…

网络工程师 (29)CSMA/CD协议

前言 CSMA/CD协议,即载波监听多路访问/碰撞检测(Carrier Sense Multiple Access with Collision Detection)协议,是一种在计算机网络中,特别是在以太网环境下,用于管理多个设备共享同一物理传输介质的重要…

软件项目验收测试有哪些类型?

在信息技术行业,软件项目的成功不仅依赖于开发能力,更在于准确的验收测试。验收测试是软件开发生命周期中的重要一环。其主要目的是验证软件系统是否符合用户需求和预期。在这一阶段,最终用户能够直观地判断软件是否满足其业务需求。 软件项…

Python截图轻量化工具

一、兼容局限性 这是用Python做的截图工具,不过由于使用了ctypes调用了Windows的API, 同时访问了Windows中"C:/Windows/Cursors/"中的.cur光标样式文件, 这个工具只适用于Windows环境; 如果要提升其跨平台性的话,需要考虑替换cty…

【Deepseek私有化部署】解决 Anything LLM 上传文档一直转圈上传失败问题

这里写自定义目录标题 一、问题描述二、原因分析(一)Embedder 在 Anything LLM 中的核心作用(二)默认配置与 Deepseek 的适配问题(三)未正确配置 nomic - embed - text 引发的异常 三、解决途径&#xff08…

神经网络|(九)概率论基础知识-泊松分布及python仿真

【1】引言 在前序学习进程中,我们已经知晓二项分布是多重伯努利分布,二伯努利分布对应的是可以无限重复、结果只有两种可能的随机试验。 相关文章链接为: 神经网络|(八)概率论基础知识-二项分布及python仿真-CSDN博客 上述文章还调用nump…

《从0到1CTFer成长之路》逆向工程个人笔记--静态分析

上一篇文章:《从0到1CTFer成长之路》逆向工程个人笔记--逆向工程基础 IDA 使用入门 加载文件 打开 IDA,点击 GO,即可把程序拖拽到 IDA 中 IDA 分为 32bit 和 64bit 两种架构,选择哪种结构,可以在把程序拖拽到 IDA 后…

【机器学习】训练(Training)、验证(Validation)和测试(Testing)

机器学习中训练(Training)、验证(Validation)和测试(Testing)这三个阶段的作用和关系。 1. 训练阶段 (Training) - 使用训练集数据来训练模型 - 模型通过学习训练数据的特征和模式来调整其内部参数 - 这个阶段模型会不断优化以减少预测误差 - 通常使用最大的数据集比例&…

解锁 DeepSeek 模型高效部署密码:蓝耘平台深度剖析与实战应用

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

IDEA升级出现问题Failed to prepare an update Temp directory inside installation

IDEA升级出现问题"Failed to prepare an update Temp directory inside installation…" 问题来源: 之前修改了IDEA的默认配置文件路径,然后升级新版本时就无法升级,提示"Failed to prepare an update Temp directory insid…

查询已经运行的 Docker 容器启动命令

一、导语 使用 get_command_4_run_container 查询 docker 容器的启动命令 获取镜像 docker pull cucker/get_command_4_run_container 查看容器命令 docker run --rm -v /var/run/docker.sock:/var/run/docker.sock cucker/get_command_4_run_container 容器id或容器名 …

【C++高并发服务器WebServer】-14:Select详解及实现

本文目录 一、BIO模型二、非阻塞NIO忙轮询三、IO多路复用四、Select()多路复用实现 明确一下IO多路复用的概念:IO多路复用能够使得程序同时监听多个文件描述符(文件描述符fd对应的是内核读写缓冲区),能够提升程序的性能。 Linux下…

活动预告 |【Part1】Microsoft 安全在线技术公开课:安全性、合规性和身份基础知识

课程介绍 通过参加“Microsoft 安全在线技术公开课:安全性、合规性和身份基础知识”活动提升你的技能。在本次免费的介绍性活动中,你将获得所需的安全技能和培训,以创造影响力并利用机会推动职业发展。你将了解安全性、合规性和身份的基础知识…

Dubbo 3.x源码(29)—Dubbo Consumer服务调用源码(1)服务调用入口

基于Dubbo 3.1,详细介绍了Dubbo Consumer服务调用源码。 此前我们学习了Dubbo服务的导出和引入的源码,现在我们来学习Dubbo服务调用的源码。 此前的文章中我们讲过了最上层代理的调用逻辑(服务引用bean的获取以及懒加载原理):业务引入的接口…

01-SDRAM控制器的设计——案例总概述

本教程重点▷▷▷ 存储器简介。 介绍 SDRAM 的工作原理。 详细讲解SDRAM 控制的Verilog 实现方法。 PLL IP和FIFO IP 的调用,计数器设计,按键边沿捕获,数码管控制。 完成SDRAM控制器应用的完整案例。 Signal Tap 调试方法。 准备工作▷…