手撕算法-对称二叉树

力扣101. 对称二叉树

链接

https://leetcode.cn/problems/symmetric-tree/description/

题目描述

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

示例1:

此树是对称的。

示例2:

此树也是对称的

示例3:

此树不对称

思路

一颗树对称的前提是,左右子节点同时存在或不存在且:

  1. left.val == right.val
  2. left.left.val == right.right.val
  3. left.right.val == right.left.val

自顶向下,判断每对子节点是不是对称的。

代码

java 复制代码
class Solution {
    public boolean isSymmetric(TreeNode root) {
        return isMirror(root, root);
    }

    public boolean isMirror(TreeNode t1, TreeNode t2) {
        if (t1 == null && t2 == null) return true; // 都为空,对称
        if (t1 == null || t2 == null) return false; // 其中一个非空,另一个为空,不对称
        // 值相等,且左右节点也是对称的
        return (t1.val == t2.val)
            && isMirror(t1.right, t2.left)
            && isMirror(t1.left, t2.right);
    }
}

面试公司

  • 字节跳动
相关推荐
晨晖21 小时前
顺序查找:c语言
c语言·开发语言·算法
LYFlied1 小时前
【每日算法】LeetCode 64. 最小路径和(多维动态规划)
数据结构·算法·leetcode·动态规划
Salt_07282 小时前
DAY44 简单 CNN
python·深度学习·神经网络·算法·机器学习·计算机视觉·cnn
货拉拉技术2 小时前
AI拍货选车,开启拉货新体验
算法
MobotStone2 小时前
一夜蒸发1000亿美元后,Google用什么夺回AI王座
算法
Wang201220132 小时前
RNN和LSTM对比
人工智能·算法·架构
xueyongfu2 小时前
从Diffusion到VLA pi0(π0)
人工智能·算法·stable diffusion
永远睡不够的入2 小时前
快排(非递归)和归并的实现
数据结构·算法·深度优先
cheems95272 小时前
二叉树深搜算法练习(一)
数据结构·算法
sin_hielo2 小时前
leetcode 3074
数据结构·算法·leetcode