【简单】面试题27. 二叉树的镜像(栈、队列、递归三种方式实现)

运放+三极管恒流源电路设计实战:从原理到仿真一步到位(附Multisim文件) 本文详细解析了运放与三极管构建恒流源电路的核心原理,重点阐述了负反馈机制如何实现精准的电流控制。通过Multisim仿真实战,从电路搭建、参数计算到负载调整率与动态响应分析,一步步指导设计过程,并提供常见故障的调试技巧与PCB设计要点,帮助工程师从理论平稳过渡到可靠实践。 阅读详情

【题目】
请完成一个函数,输入一个二叉树,该函数输出它的镜像。
来源:leetcode
链接:https://leetcode-cn.com/problems/er-cha-shu-de-jing-xiang-lcof/
例如:
输入:
4
/ \
2 7
/ \ / \
1 3 6 9
输出:
4
/ \
7 2
/ \ / \
9 6 3 1
【示例】
输入:root = [4,2,7,1,3,6,9]
输出:[4,7,2,9,6,3,1]
【限制】
0 <= 节点个数 <= 1000
【思路】
【代码】递归、栈模拟、队列模拟
【递归】
耗时:4ms 63.03%
内存:9.1MB 100%
1、利用二叉树的先序遍历NLR,先处理根节点,再处理左右节点。
2、边界条件是:当前节点为空NULL
3、具体操作:交换根节点的左右子树

class Solution {
public:
    TreeNode* mirrorTree(TreeNode* root) {
        if (root==NULL)
            return NULL;
        swap(root->left, root->right);
        mirrorTree(root->left);
        mirrorTree(root->right);
        return root;
    }
};

【栈】
耗时:0ms 100% 栈竟然比其他两种方式快这么多?!
内存:9.5MB 100%
1、先序递归转成用栈实现的非递归先序遍历
2、循环结束条件:栈为空
3、交换栈顶节点的左右子树

class Solution {
public:
    TreeNode* mirrorTree(TreeNode* root) {
        TreeNode* t;
        stack<TreeNode*> s;
        s.push(root);
        while(!s.empty()){
            t=s.top();
            s.pop();
            if(t==NULL)
                continue;
            swap(t->left,t->right);
            s.push(t->left);
            s.push(t->right);
        }
        return root;
    }
};

【队列】
耗时:4ms 63.03%
内存:9.5MB 100%
我个人比较偏向与用队列作为辅助的层次遍历,个人觉得层次遍历可以解决90%的树类问题,还有10%是题目要求用递归或其他方式实现。万能的层次遍历!!!
1、用队列实现对树的层次遍历
2、循环结束条件:队列为空
3、交换队首节点的左右子树

class Solution {
public:
    TreeNode* mirrorTree(TreeNode* root) {
        TreeNode *head=root,*t,*left;
        queue<TreeNode*> q;
        q.push(root);
        while(!q.empty()){
            t=q.front();
            q.pop();
            if(t==NULL)
                continue;
            swap(t->left,t->right);
            q.push(t->left);
            q.push(t->right);
        }
        return head;
    }
};
LVGL与STM32的理解(基于正点原子资料) 我们要在lcd_draw_fast_rgb_color里面实现对屏的具体操作(也就是在这里实现自己的代码)。lcd_set_window、lcd_write_ram_prepare、lcd_wr_data这三个函数是本例程LCD屏的控制函数(也就是自己写的函数)。以下是stm32工程的文件目录,GUI_APP也可以忽略(细节参考正点原子例程):这里主要是再次加强一下印象,主要就是把。,里面的lcd_init()与lcd_display_dir是。它们都是LVGL的接口,按照它们的需求,把内容给它们即可。 阅读详情

相关推荐

ESP32+HC-SR04超声波测距:5分钟搞定智能避障小车核心功能(附完整代码)

本文详细介绍了如何使用ESP32开发板和HC-SR04超声波测距模块快速构建智能避障小车的核心功能。通过优化的接线方案、核心代码实现及调试技巧,帮助开发者5分钟内完成硬件连接与软件编程,实现高效的避障功能。附完整代码,适合创客教育和机器人开发。

weixin_29185199的博客 386

剑指offer27.二叉树的镜像(递归&辅助队列)

看题第一思路

花椒胡椒小辣椒的个人博客 234

kali设置安装burpsuite中文版

工具:通过网盘分享的文件:Burpsuite 链接:提取码: jay1。

m0_74786138的博客 5206

用两个栈实现队列与二叉树的镜像

题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路:队列:是先进先出;栈:是先进后出。由此可见,用两个栈可以实现队列。首先队列push的时候,就只需要把元素放进栈1,这里需要注意的是int与integer的转换,即new Integer(int) 。队列pop的时候,就是把栈1里面的元素放到栈2中,然后将栈2中的元素pop就可以实现了。这里又涉及到将In

月璇之音的博客 844

CXL协议-第三章 CXL事务层

CXL.io为I/O设备提供了一个非一致的负载/存储接口。图3-1显示了Flex总线分层层次结构中的位置。事务类型、事务分组格式、基于信用的流量控制、虚拟通道管理和事务排序规则遵循PCIe*定义,详情请参考PCIe基础规范的“事务层规范”章节。本章重点介绍了用于CXL.io的著名的PCIe操作模式或特性。

qq_41305217的博客 2771

华为OD机试2025C卷-双十一最大花费金额[100分](Java_Python3_C++_C语言_JsNode_Go)实现100%通过率

双十一最大花费金额 - 动态规划解法 摘要:本文介绍了华为OD机试中"双十一最大花费金额"问题的动态规划解法。该问题要求在给定N件商品价格和优惠券面额X的情况下,选择若干商品使总花费不超过X且尽可能大。核心解法采用布尔型动态规划数组,记录每个金额是否可被拼出。算法时间复杂度为O(N*X),空间复杂度为O(X)。通过倒序遍历避免重复选择同一商品,最后从X向下查找第一个可达金额作为答案。文中提供了C++和Java的实现代码,并解释了与经典0-1背包问题的关系。 关键点: 问题本质是0-1背包/子集和问题的变体

2503_91057718的博客 48

【LeetCode-剑指Offer】32 - III. 从上到下打印二叉树 III

一、题目 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3], [20,9], [15,7] ] 提示: 节点总数 <= 1000 二、解决 1、 思路: 代码: 时间复杂度: O(n)O(n)O(n

HeavenDan的博客 404

ICP-10111气压传感器原理图设计,已量产(压力传感器)

在最近的室内导航定位项目中,我们需要一款能捕捉厘米级垂直高度变化的气压传感器 —— 毕竟室内环境里,哪怕是单个台阶的高度差都得精准识别。对比了几款器件后,最终选定了 ICP-10111:它 ±1Pa 的压差精度刚好能把高度差分辨到 8.5cm,0.4Pa 的低压力噪声能让数据输出足够稳定,再加上 0.5Pa/℃的低温漂特性,长期工作的可靠性也能满足需求。下面聊聊这套适配 ICP-10111 的硬件电路设计细节。

不脱发的程序猿 334

二叉树的镜像

class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } public class Solution { //方法二:精...

ZCC的专栏 479

六、Tool 工具系统:让大模型拥有“手脚“

我问你一个问题:大模型能不能告诉你"北京今天天气怎么样"?能——它能用非常流畅的中文回答你不能——它不知道这个答案因为它没有联网能力,也没有实时数据。它可能会自信地编一个"今天晴,25 度"给你——这就是幻觉。问题出在哪?大模型是一个"推理引擎",不是一个"执行引擎"。它知道天气 API 怎么调用,但不能真的发出 HTTP 请求。它知道 Python 代码怎么写,但不能真的运行代码。它知道数学公式,但做不了精确的大数计算。Tool 工具系统解决的,就是这个"最后一公里"问题。

牛肉胡辣汤 160

VTK 显示大量点云数据及交互(点云拾取、着色、测量等)功能

VTK (Visualization Toolkit) 是一个强大的开源可视化库,非常适合处理点云数据。下面将介绍如何使用 VTK 显示大量点云数据,并实现点云拾取、着色、测量等功能。

深之JohnChen的专栏 2001

剑指 Offer 27. 二叉树的镜像(递归、栈)2

请完成一个函数,输入一个二叉树,该函数输出它的镜像。 例如输入: 4 / \ 2 7 / \ / \ 1 3 6 9 镜像输出: 4 / \ 7 2 / \ / \ 9 6 31 示例 1: 输入:root = [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] 限制: 0 <= 节点个数 <= 1000 解法一:递归 左边给右边,右边给左边就可以。 时间...

秋雨行舟 146

2026最新华为OD机试新系统机考真题- 真题题库目录|全覆盖题库 + 逐点算法考点详解

2026年4月1日起,华为OD机试正式切换至新系统模式!采用力扣模式,无需自己写输入! 难度大幅度降低。正在备考华为OD机试的同学,优先刷新系统机试真题,可大幅提升通过率。 新系统考题考点与旧版一致,无需重新适应。本专栏所有算法题均配有详细思路解析,并提供C语言、JS、C++、Python、Go、Java多语言源码实现。订阅后私信即可开通专属OJ刷题权限,高效备考一次上岸!

算法大师! 2693

剑指offer 面试题27 二叉树的镜像(递归与非递归实现)

1.题目 操作给定的二叉树,将其变换为源二叉树的镜像。 示例 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5 ...

拾遗 466

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

[剑指offer][JAVA]面试题第[27]题[二叉树的镜像][递归][栈]

【问题描述】[中等] 请完成一个函数,输入一个二叉树,该函数输出它的镜像。 例如输入: 4 / \ 2 7 / \ / \ 1 3 6 9 镜像输出: 4 / \ 7 2 / \ / \ 9 6 3 1 示例 1: 输入:root = [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] 【解答思路】 1. 递归 时间复杂度:O(N) 空间复杂度:O(N) class Soluti

dadongwudi的博客 188

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

剑指offer | 面试题27:二叉树的镜像

转载本文章请标明作者和出处 本文出自《Darwin的程序空间》 本文题目和部分解题思路来源自《剑指offer》第二版 开始行动,你已经成功一半了,献给正在奋斗的我们 题目 请完成一个函数,输入一颗二叉树,该函数出处它的镜像。二叉树的节点定义如下 public class TreeNode { public int val; public TreeNode left; ...

程序员大航子 1万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

剑指 offer 面试题 27 二叉树的镜像(递归,栈)

二叉树的镜像 个人博客 请完成一个函数,输入一个二叉树,该函数输出它的镜像。 例如输入: 4 / 2 7 / \ / 1 3 6 9 镜像输出: 4 / 7 2 / \ / 9 6 3 1 题解 递归 思路 最终要的是找到二叉树镜像的规律 画图可以看出二叉树的镜像就是递归地交换二叉树的左右节点 复杂度分析 时间复杂度 O(n) 空间复杂度 O(n):最差的情况下(当二叉树退化为链表)需要使用 O(n)大小的栈空间 /** * Definition f

weixin_43857959的博客 164

Leetcode刷题:剑指offer【面试题27 二叉树的镜像】

文章目录思路 1:递归思路 2:非递归 【面试题27 二叉树的镜像】 难度: 简单 请完成一个函数,输入一个二叉树,该函数输出它的镜像。 Leetcode题目对应位置: 面试题27:二叉树的镜像 思路 1:递归 常规思路就是递归解法啦。(1)确定递归边界:root = null;(2)对每个 root 的操作:交换 root.left 和 root.right;(3)递归向下交换左右子树根节点即可。 时间复杂度:O(n),n 为二叉树节点数量 空间复杂度:O(n),最差情况下二叉树退化为链表,需要 O(n)

学习 & 分享 ~ 334

面试题27. 二叉树的镜像(226. 翻转二叉树)(Java)(后序递归,翻转原树)(后序递归,翻转出新树,原树保留)(队列迭代)

1 题目 2 Java 2.1 方法一(递归) /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ c...

weixin_43969686的博客 190

leetcode 面试题27. 二叉树的镜像(python)

题目: 题解: 递归: 利用深度优先搜索,深度优先搜索包括二叉树的先序,中序,后序遍历;在本题中我们利用二叉树的先序遍历来进行求解,在输出当前结点的值之后,交换此结点的左右结点,然后再进行遍历。 代码如下: class Solution: def mirrorTree(self, root): def dfs(root): if root is not Non...

cy_believ的博客 297

LeetCodeEasy-【面试题27. 二叉树的镜像】

请完成一个函数,输入一个二叉树,该函数输出它的镜像。 示例 1: 输入:root = [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] 限制: 0 <= 节点个数 <= 1000 注意:本题与主站 226 题相同:https://leetcode-cn.com/problems/invert-binary-tree/ 来源:力扣(LeetCode) 链接:...

ystraw - Come on!!! 213

面试题27:二叉树的镜像

题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ 11 9 7 5 ...

aladingyushendeng的博客 134

剑指offer系列-面试题27-二叉树的镜像(python)

文章目录1. 题目2. 分析题意3. 解题思路4. 总结5. 参考文献 1. 题目 2. 分析题意 3. 解题思路 4. 总结 5. 参考文献 [1] 剑指offer丛书

besmarterbestronger的博客 312

剑指offer-面试题27:二叉树的镜像

题目描述 请完成一个函数,输入一个二叉树,该函数输出它的镜像。 例如输入: 4 / \ 2 7 / \ / \ 1 3 6 9 镜像输出: 4 / \ 7 2 / \ / \ 9 6 3 1 示例 1: 输入:root = [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] 限制: 0 <= 节点个数 <= 1000

qq_43568109的博客 195

Java详解剑指offer面试题27--对称的二叉树

Java详解剑指offer面试题27–对称的二叉树 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。 对称的二叉树,结点数必然是奇数,特别地定义空树也是对称的。当对称树的结点值不是完全相同时比较好处理,但是当结点值全部一样时候可能会有些麻烦。我们要实现一个通用的算法,使得对于这种特殊情况也能正确处理。 要保证树是对称的,左子树最左边的结点要和右子树最右边的结点值相同…左子树的右子结点要和右子树的左子结点值相同,即 root1.left ==

快乐李同学的博客 397

剑指offer 面试题27. 二叉树的镜像 [简单]——递归/queue

我的解题: 1.递归 class Solution { public: TreeNode* mirrorTree(TreeNode* root) { if(!root) return nullptr; swap(root->right,root->left); mirrorTree(root->right); ...

Vermouth_Su的博客 174
上一篇: 【简单】面试题22. 链表中倒数第k个节点
下一篇: 【简单】面试题17. 打印从1到最大的n位数
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值