首页 > 其他分享 >刷刷刷 Day | 101. 对称二叉树

刷刷刷 Day | 101. 对称二叉树

时间:2023-01-20 19:56:25浏览次数:58  
标签:101 return right 二叉树 && false null Day left

101. 对称二叉树

LeetCode题目要求

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

图

示例

输入:root = [1,2,2,3,4,4,3]
输出:true
解题思路

通过分别遍历左右两个子树,并对比左右子树的左右子节点是否对称相等,也就是要比较的是左树的左节点与右树的右节点,左树的右节点与右树的左节点
如果都相等,就说明是对称的

上代码,递归

class Solution {
    public boolean isSymmetric(TreeNode root) {
        if (root == null) {
            return true;
        }

        return compare(root.left, root.right);
    }

    public boolean compare(TreeNode left, TreeNode right) {
        // 比较左右两树
        // 1. 如果 left == null && right != null, false
        // 2. 如果 left != null && right == null, false
        // 3. 如果 left == null && right == null, true
        // 4. left right 都不为空时,比较 left.val 是否相等 right.val, 不等 false,相等继续递归

        if (left == null && right != null) {
            return false;
        } else if (left != null && right == null) {
            return false;
        } else if (left == null && right == null) {
            return true;
        } else if (left.val != right.val) {
            return false;
        }

        boolean l = compare(left.left, right.right);
        boolean r = compare(right.left, left.right);

        return l && r;
    }
}

附:学习资料链接

标签:101,return,right,二叉树,&&,false,null,Day,left
From: https://www.cnblogs.com/blacksonny/p/17063081.html

相关文章

  • 刷刷刷 Day 15| 226. 翻转二叉树
    226.翻转二叉树LeetCode题目要求给你一棵二叉树的根节点root,翻转这棵二叉树,并返回其根节点示例输入:root=[4,2,7,1,3,6,9]输出:[4,7,2,9,6,3,1]解题思路基本......
  • 刷刷刷 Day15 | 102. 二叉树的层序遍历
    102.二叉树的层序遍历LeetCode题目要求给你二叉树的根节点root,返回其节点值的层序遍历。(即逐层地,从左到右访问所有节点)。示例输入:root=[3,9,20,null,null,1......
  • 机器学习(day1)
    1、MachineLearningGrowoutofworkinAINewcapabilityforcomputers2、ExamplesDatabaseminingLargedatabasefromgrowthofautomation/webEg.Webcli......
  • 刷刷刷 Day 14| 二叉树的遍历
    144.二叉树的前序遍历LeetCode题目要求给你二叉树的根节点root,返回它节点值的前序遍历。示例输入:root=[1,null,2,3]输出:[1,2,3]解题思路最重要的要明白......
  • 2023WinterHoliday刷题总结第一弹
    \(2023WinterHoliday\)刷题总结第一弹\(CTF\)\(Web\)1.\(json格式:\)$json['x']=="wllm"\(JSON\)(JavaScriptObjectNotation,JS对象简谱)是一种轻量级的数据交换格式,采......
  • 树,森林与二叉树的转换复习
    普通的树,结构太多,研究起来也很复杂。但是依据树的孩子兄弟表示法,可以将普通的树,转换为二叉树,就方便很多。转换步骤:1,加线:在所有兄弟之间连线2,去线:对树中每个结点,只保留它......
  • 线索二叉树
    线索二叉树的实现内涵,一棵n个结点的树中一定会存在n+1个空指针域,将此指针域给利用起来,实现指向前驱或后继。其线索二叉树,等于把一颗二叉树转化为一个双向链表。对二叉树......
  • 二叉树的最大宽度--google面试遇到过,他是要求求解所有路径path
    543.二叉树的直径难度简单1221收藏分享切换为英文接收动态反馈给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。......
  • 【DFS】LeetCode 951. 翻转等价二叉树
    题目链接951.翻转等价二叉树思路如果二叉树root1,root2根节点值相等,那么只需要检查他们的孩子是不是相等就可以了。如果root1或者root2是null,那么只有在他们都......
  • 代码随想录算法训练营day09 | leetcode 28. 实现 strStr()
    LeetCode28.实现strStr()牢记一点:next[i]元素表示【0,i】子串的最长相等前后缀个数,也是模式串与主串匹配不相等时模式串的下一个比较索引分析1.0前缀是指不包含最后......