Leetcode 101. 对称二叉树

题目描述:

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

示例 1:

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

输出:true

示例 2:

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

输出:false

思路:

对称二叉树:若为对称二叉树,则一定有:

算法流程:

函数 isSymmetric(root) :

若根节点 root 为空,则直接返回 true。 返回值: 即 recur(root.left,root.right) ;

函数 recur(L, R) :

终止条件: 当 L 和 R 同时越过叶节点: 此树从顶至底的节点都对称,因此返回 true 。

当 L 或 R中只有一个越过叶节点: 此树不对称,因此返回 false 。

当节点 L 值!= 节点 R 值: 此树不对称,因此返回 false。

递推工作: 判断两节点 L.left 和 R.right 是否对称,即 recur(L.left, R.right) 。

判断两节点 L.right 和 R.left 是否对称,即recur(L.right, R.left) 。

返回值: 两对节点都对称时,才是对称树,因此用与逻辑符 && 连接。

python:

python 复制代码
class Solution:
    def isSymmetric(self, root: Optional[TreeNode]) -> bool:
        def recur(L,R):
            if not L and not R:
                return True
            if not L or not R or L.val!=R.val:
                return False
            # 两边节点都对称时,才是对称树
            return recur(L.left,R.right) and recur(L.right,R.left)

        return not root or recur(root.left,root.right)
相关推荐
FakeOccupational3 小时前
【数学 密码学】量子通信:光的偏振&极化的量子不确定性特性 + 量子密钥分发 BB84算法步骤
算法·密码学
ZhengEnCi5 小时前
S10-蓝桥杯 17822 乐乐的积木塔
算法
贾斯汀玛尔斯5 小时前
每天学一个算法--拓扑排序(Topological Sort)
算法·深度优先
大龄程序员狗哥5 小时前
第25篇:Q-Learning算法解析——强化学习中的经典“价值”学习(原理解析)
人工智能·学习·算法
exp_add36 小时前
质数相关知识
算法
九皇叔叔6 小时前
Ubuntu 22.04 版本常用设置
linux·运维·ubuntu
南境十里·墨染春水6 小时前
linux学习进展 线程同步——互斥锁
java·linux·学习
小辉同志6 小时前
215. 数组中的第K个最大元素
数据结构·算法·leetcode··快速选择
小O的算法实验室7 小时前
2025年IEEE TITS,基于矩阵的进化计算+面向无线传感器网络数据收集无人机路径规划,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
OidEncoder7 小时前
编码器分辨率与机械精度的关系
人工智能·算法·机器人·自动化