手撕算法-对称二叉树

力扣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);
    }
}

面试公司

  • 字节跳动
相关推荐
203号居民11 小时前
LeetCode hot 100 —560. 和为 K 的子数组
java·算法·leetcode
退休倒计时12 小时前
【每日一题】LeetCode 20. 有效的括号 TypeScript
算法·leetcode·职场和发展·typescript
文心快码BaiduComate12 小时前
光本位联合文心快码打造面向光电芯片研发的全栈AI Agent Lightmate
算法
一次旅行12 小时前
ViT/CLIP/LLaVA/GPT-4V/VideoLLM多模态架构全解:原理仿真+工业落地选型+完整推理代码
人工智能·算法·架构
神明不懂浪漫13 小时前
【第五章】队列
开发语言·数据结构·经验分享·笔记·算法
happy_baymax13 小时前
MATLAB MCP Server+ MATLAB Agentic Toolkit+Simulink Agentic Toolkit自动更新批处理文件.ps1
人工智能·算法
神明不懂浪漫13 小时前
【第六章】二叉树
开发语言·数据结构·经验分享·笔记·算法
橘和柠14 小时前
知识图谱实战(一):数据采集与实体关系抽取(完整代码)
算法
Mem0rin14 小时前
前缀和:中心下标与数组乘积
数据结构·算法
windliang14 小时前
Claude Code 源码分析(八):Memory 如何被写入、整理与按需召回
前端·算法·面试