【LeetCode: 101. 对称二叉树 + 二叉树 + dfs】

LeetCode 101. 对称二叉树 详细技术解析 本文解析了LeetCode 101题"对称二叉树"的两种解法。题目要求判断二叉树是否轴对称,核心在于验证左右子树是否镜像对称。递归解法通过辅助函数比较节点对,判断条件包括空节点处理和值相等性。迭代解法使用队列存储待比较节点对,按广度优先顺序验证。两种方法时间复杂度均为O(n),空间复杂度递归为O(h),迭代为O(n)。文章提供了Python代码实现,包含详细注释和边界条件处理,适合不同场景需求。 阅读详情

在这里插入图片描述

🚀 算法题 🚀

🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,优快云-Java领域优质创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 算法题 🚀

在这里插入图片描述

在这里插入图片描述

🚩 题目链接

⛲ 题目描述

给你一个二叉树的根节点 root , 检查它是否轴对称。

示例 1:
在这里插入图片描述

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

示例 2:
在这里插入图片描述

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

提示:

树中节点数目在范围 [1, 1000] 内
-100 <= Node.val <= 100

进阶:你可以运用递归和迭代两种方法解决这个问题吗?

🌟 求解思路&实现代码&运行结果


⚡ 二叉树 + dfs

🥦 求解思路
  1. 题目让我们判断一个树是否和另外一个树是对称的,设计一个递归函数实现即可,如果当前俩个树根节点的值相等,递归判断树1左子树和树2右子树,以及树1右子树和树2左子树是否相等即可。
  2. 有了基本的思路,接下来我们就来通过代码来实现一下。
🥦 实现代码
/**
 * 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 boolean isSymmetric(TreeNode root) {
        if (root == null)
            return true;
        return dfs(root.left, root.right);
    }

    public boolean dfs(TreeNode root1, TreeNode root2) {
        if (root1 == null && root2 == null)
            return true;
        if (root1 != null && root2 != null)
            return root1.val == root2.val && dfs(root1.left, root2.right) && dfs(root1.right, root2.left);
        return false;
    }
}
🥦 运行结果

在这里插入图片描述


💬 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述

二叉树热题(二):对称二叉树、路径总和 【摘要】《算法面试60讲》第26篇聚焦二叉树高频题型,深入解析对称二叉树(LeetCode101)和路径总和(LeetCode112/113)两类经典问题。对称二叉树引入双树同步递归思想,需交叉验证左右子树的内外侧节点;路径总和问题则分为存在性判断(112)和全路径收集(113),后者采用DFS回溯模板,强调叶子节点判定与路径状态管理。两题覆盖递归、迭代、回溯三种解法,提炼出双树对比递归和二叉树回溯两大核心思维模式,并总结短路剪枝、空指针处理、路径拷贝等面试易错点,为树形DP和路径类题型提供通用解题框架。 阅读详情

相关推荐

从FedAvg到实战:手把手教你用PyTorch复现联邦学习经典论文实验(MNIST/CIFAR-10)

本文详细介绍了如何使用PyTorch复现联邦学习经典算法FedAvg在MNIST和CIFAR-10数据集上的实验。从环境搭建、数据非IID划分到模型实现和参数聚合,手把手教你掌握联邦学习的核心技术与实战技巧,帮助开发者和研究人员快速实现隐私保护的分布式机器学习方案。

weixin_29053695的博客 252

【LeetCode: 680. 验证回文串 II + 贪心 + 边界处理】

【LeetCode: 680. 验证回文串 II + 贪心 + 边界处理】给你一个字符串 s,最多 可以从中删除一个字符。 请你判断 s 是否能成为回文字符串:如果能,返回 true ;否则,返回 false 。

Coder_ljw的博客 1135

从FreeCAD到BIMBase:PlaneGCS约束求解器的移植使用指南

本文为BIMBase平台的开发者提供了一份详细的PlaneGCS几何约束求解器移植与集成指南。文章深入探讨了如何从FreeCAD中提取PlaneGCS核心代码,并将其适配到BIMBase的C++二次开发环境中,重点解决了内存管理、数据模型桥接、约束抽象以及性能调优等关键问题,旨在帮助开发者构建稳定高效的参数化设计模块。

weixin_29213525的博客 320

mysql必知必会样例表_《SQL必知必会》笔记1-样例表说明及建表语句

该笔记整理自Ben Forta著,钟鸣、刘晓霞译,人民邮电出版社出版的《SQL必知必会》第4版,具体内容有部分省略。关于存储过程的部分内容,结合了《SQL必知必会》和《MySQL必知必会》。代码测试环境:Win7-64bit、MySQL 5.7、MySQL Workbench 6.3。1 样例表解释说明书中所用的表是一个玩具经销商使用的订单录入系统的组成部分,包括:管理供应商Vendors。管理...

weixin_42467457的博客 2008

Oracle19c-集群节点重新添加

Oracle RAC集群在极端情况下,如硬件、主机,集群软件损坏,导致集群节点永久无法使用,需要对集群节点进行修复,删除节点集群信息并重新加入集群,以恢复集群原有的架构。 本文主要讲述一套两节点的Oracle19c RAC集群,节点一orcl01由于主机异常无法正常启动,在对主机进行重装之后,需要将orcl01节点重新加入集群的操作步骤。环境信息: 操作系统:Linux 7 RAC集群:19C 主机节点:orcl0...

sinat_36757755的博客 2350

论文阅读------Exposure Fusion: A Simple and Practical Alternative to High Dynamic Range Photography

Mertens T, Kautz J, Van Reeth F. Exposure fusion: A simple and practical alternative to high dynamic range photography[C]//Computer graphics forum. Oxford, UK: Blackwell Publishing Ltd, 2009, 28(1): 161-171. 摘要 本文提出了一种将包围曝光的序列融合到高质量图像中的技术,而无需先转换为高动态范围(HD.

qq_25283239的博客 3395

【前缀和】1456.定长子串中元音的最大数目

这个官方题解采用了滑动窗口的方法来解决问题。通过维护一个固定大小的窗口,我们可以在O(n)的时间复杂度内找到最长连续元音字符的子串。在实际编程中,可以根据具体需求对这个解法进行优化,例如在字符串中只包含元音字符的情况下,可以进一步优化时间复杂度。

进一步有一步的欢喜 408

高温环境下RS485通信故障分析与MOS管解决方案

RS485通信作为工业控制领域的基础总线技术,其可靠性直接影响系统稳定性。在高温等恶劣环境下,传统三极管开关电路会因温度特性导致通信故障。通过分析三极管Ube电压随温度变化的特性,揭示了电路失效的物理原理。相比之下,MOS管作为电压控制型器件,具有温度稳定性好、功耗低等优势,更适合工业环境应用。本文通过一个发动机舱内RS485通信故障的实际案例,详细对比了三极管与MOS管在高温环境下的性能差异,并给出了具体的电路改进方案。该案例对工业通信接口设计具有普遍参考价值,特别适用于需要应对高温、振动等挑战性环境的硬

weixin_42612405的博客 405

2225 找出输掉零场或一场比赛的玩家(哈希表)

1. 问题描述: 给你一个整数数组 matches 其中 matches[i] = [winneri,loseri] 表示在一场比赛中 winneri 击败了 loseri 。返回一个长度为 2 的列表 answer : answer[0] 是所有没有输掉任何比赛的玩家列表。 answer[1] 是所有恰好输掉一场比赛的玩家列表。 两个列表中的值都应该按递增顺序返回。 注意: 只考虑那些参与至少一场比赛的玩家。 生成的测试用例保证不存在两场比赛结果相同 。 示例 1: 输入:matches = [[.

二哈 969

PCL Trimmed ICP实现点云精配准【2025最新版】

博客长期更新,本文最新更新时间为:2025年6月25日。抄袭狗记得来抄最新代码哦,抄都抄成错的,不够丢人钱。

点云侠的博客 37万+

从一只龙虾到一支团队:OpenClaw 单 Bot 多 Agent 配置实践

单 Bot 多 Agent只有一个对外的聊天入口(飞书 Bot)内部有多个独立的 AI Agent,各司其职主 Agent(总指挥)负责接收任务并分配给子 Agent子 Agent 完成任务后将结果返回给主 Agent角色Agent ID职责使用场景🎯 总指挥main-agent统筹协调,任务分发接收所有用户请求✍️ 笔杆子内容创作公众号、博客、小红书🔬 参谋canmou深度研究竞品分析、市场调研📋 运营官operations运营管理邮件、日历、社交媒体。

Maynor的博客 1078

牛客NC406#最长山脉#Java版#一次循环搞定#代码性能O(n)

牛客NC406#最长山脉#Java版#一次循环搞定#代码性能O(n)

个人程序员-猴嗨哦-的博客 616

【乐企】开票控制服务

例子:企业信息初始化。

九七的博客 451

Leetcode DFS

文章目录100. Same101. Symmetric Tree 100. Same TreeGiven two binary trees, write a function to check if they are the same or not. Two binary trees are considered the same if they are structurally identica...

EPFL_Panda的博客 381

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

leetCode 101/199-Symmetric Tree/Binary Tree Right Side View

链接:https://leetcode.com/problems/symmetric-tree/ 此题就是判断一棵二叉树是否为对称二叉树,刚开始以为中序遍历输出,然后看是否是为回文字串,但是这种思路是错了,如[1,2,3,#,3,#,2]. 代码如下: 通过循环递归判断左孩子的左子树与右孩子的右子树 及 左孩子的右子树与右孩子的左子树即可得到结果。 class Solution { pub

小村长技术blog 1344

老版QQ原生表情gif动态

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

2021-11-08每日刷题打卡

一、Leetcode-965:单值二叉树 1.1 问题描述 1.2 问题分析 **深度优先搜索:**设一个全局bool变量,按照前序遍历的顺序遍历每一个结点,并把根结点的值传下去进行比较,只要子树的结点值与根结点值不同,就把bool变量赋值false。 1.3 问题解决 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *

soulandlove的博客 242

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【递归】【后续遍历】【迭代】【队列】Leetcode 101 对称二叉树 100. 相同的树

【递归】【后续遍历】【迭代】【队列】Leetcode 101 对称二叉树 100. 相同的树

prince0520的博客 595

力扣101.对称二叉树(java)

2. 左子树的左子树与 右子树的右子树 是否同时与 左子树的右子树与 右子树的左子树 均为对称。(对称:左子树与右子树是否都为空,两值是否都为空, 不对称:只有一值为空)这里的dfs,是双向深入的dfs。因为需要两子树进行比较。1. 左子树 与 右子树是否堆成。类似dfs,只是逐层处理。

2401_87338545的博客 216

【LeetCodehot100】二叉树大合集 T94:二叉树的中序遍历 T104:二叉树的最大深度 T226:翻转二叉树 T101:对称二叉树

今天题目不算难,我们来个二叉树大集合。

2501_92547326的博客 505

LeetCode 热题 100 之 104. 二叉树的最大深度 226. 翻转二叉树 101. 对称二叉树

本文介绍了二叉树相关问题的两种解法:递归(DFS)和迭代(BFS)。对于二叉树最大深度问题,递归法通过比较左右子树深度取最大值加1;翻转二叉树通过交换左右子节点并递归处理;判断对称二叉树则需递归检查左右子树是否镜像。迭代法均采用队列实现,最大深度问题通过层数计数,翻转二叉树通过交换节点,对称二叉树通过成对检查镜像节点。两种方法各有优劣,递归更简洁,迭代更适合深度较大的树。

2401_87662859的博客 235

LeetCode 101. 对称二叉树(Symmetric Tree)

对称二叉树本质是递归判断左右子树是否镜像。​ 核心逻辑:比较左子树的左孩子与右子树的右孩子,以及左子树的右孩子与右子树的左孩子。面试首选递归法,牢记三个终止条件(全空、一空、值不等)。代码极简,关键是理解“镜像比较”而非单纯值相等。

2501_91888992的博客 398

力扣解题-101. 对称二叉树

递归DFS法(第一次解答):O(n)时间+O(h)空间,逻辑清晰、镜像对比精准,是判断对称二叉树的最优解法,工程中优先使用;迭代BFS法(层序遍历):O(n)时间+O(n)空间,非递归实现,满足进阶要求,适合避免递归栈的场景;迭代DFS法(栈模拟):O(n)时间+O(h)空间,与递归法空间复杂度一致,代码稍复杂;递归精简版:代码更简洁,逻辑等价,可读性更高;关键技巧:核心思想:对称二叉树的本质是“左右子树镜像对称”,需对比;

qq_38261626的博客 402

hot100 对称二叉树(101)

本题采用(又称“双指针镜像校验算法”)解决二叉树的轴对称检查问题。其核心本质是将全局的“轴对称”结构校验拆解为左右双指针的同步探查,利用递归并行推进的特性,在自顶向下的同步遍历过程中对处于镜像位置的节点进行实时值比对与拓扑校验。当前提供的源码实现了在时间复杂度和额外空间复杂度条件下的全局最优树结构对称性检索。

2603_96126046的博客 307

LeetCode hot100-101 对称二叉树

【代码】LeetCode hot100-101 对称二叉树。

qq_57277346的博客 29

LeetCode 热题 100 精讲 | 二叉搜索树与二叉树进阶篇:验证BST · 对称二叉树 · 直径 · 第K小元素

二叉搜索树与二叉树进阶篇的四道题,考察的是对二叉树递归遍历的深入理解。验证 BST 需要认清“左子树所有节点小于根节点”的本质;对称二叉树在镜像比较中体会递归的对称美;二叉树的直径把路径计算巧妙融入深度递归;BST 第 K 小元素则是中序遍历的灵活应用。把这四道题吃透,递归遍历的逻辑会清晰很多。建议刷题顺序:先做对称二叉树和二叉树直径练手感,再做验证 BST 理解边界传递,最后用 BST 第 K 小元素收尾。下一篇将进入回溯篇(全排列、子集、组合总和等),敬请期待。免责声明。

2302_81155164的博客 666

【二叉树】LC 101.对称二叉树

本文介绍了LeetCode第101题“对称二叉树”的两种解法:递归和迭代。递归解法通过判断根节点、外侧节点和内侧节点的对称性实现,时间复杂度O(n),空间复杂度O(h)。迭代解法利用队列模拟递归过程,时间复杂度O(n),空间复杂度O(w)。两种方法均需遍历所有节点,递归法深度优先,空间占用取决于树高;迭代法广度优先,空间占用取决于树的最大宽度。解题核心在于比较左右子树的对称性,通过DFS或BFS实现。

你的博客 491
上一篇: 【LeetCode:3152. 特殊数组 II + 前缀和】
下一篇: 【LeetCode:114. 二叉树展开为链表 | 二叉树 + 递归】
硕风和炜
硕风和炜 优质创作者: Java技术领域 优质创作者: Java技术领域
博客等级 码龄7年 2万+粉丝 1024原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

硕风和炜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值