首页 > 其他分享 >leetcode 101. Symmetric Tree 对称二叉树(简单)

leetcode 101. Symmetric Tree 对称二叉树(简单)

时间:2022-09-07 13:22:31浏览次数:97  
标签:right return Tree Symmetric 二叉树 对称 null root left

一、题目大意

给你一个二叉树的根节点 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

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

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/symmetric-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

二、解题思路

判断一个树是否对称等价于判断左右子树是否对称。分四步:(1)如果两个子树都为空指针,则它们相等或对称(2) 如果两个子树只有一个为空指针,则它们不相等或不对称(3)如果两个子树根节点的值不相等, 则它们不相等或不对称(4)根据相等或对称要求,进行递归处理。

三、解题方法

3.1 Java实现

public class Solution {

    public boolean isSymmetric(TreeNode root) {
        if (root == null) {
            return true;
        }
        return isMirror(root.left, root.right);
    }

    public boolean isMirror(TreeNode left, TreeNode right) {
        // (1)如果两个子树都为空指针,则它们相等或对称
        if (left == null && right == null) {
            return true;
        }
        // (2) 如果两个子树只有一个为空指针,则它们不相等或不对称
        if (left == null && right != null) {
            return false;
        }
        if (left != null && right == null) {
            return false;
        }
        // (3)如果两个子树根节点的值不相等, 则它们不相等或不对称
        if (left != null && right != null && left.val != right.val) {
            return false;
        }
        // (4)根据相等或对称要求,进行递归处理。
        return isMirror(left.left, right.right) && isMirror(left.right, right.left);
    }
}

四、总结小记

  • 2022/9/7 做管理给待遇一定要由远及近

标签:right,return,Tree,Symmetric,二叉树,对称,null,root,left
From: https://www.cnblogs.com/okokabcd/p/16665047.html

相关文章

  • LeetCode 111 二叉树的最小深度
    后序遍历classSolution{public:intdfs(TreeNode*node){if(node==nullptr)return0;if(node->left==nullptr&&node->right!=nul......
  • LeetCode 101 对称二叉树
    /***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(......
  • LeetCode 226 翻转二叉树
    /***Definitionforabinarytreenode.*structTreeNode{*intval;*TreeNode*left;*TreeNode*right;*TreeNode():val(0),left(......
  • tree-cli生成目录结构
    目录#LINK#安装#参数解析#LINKhttps://www.npmjs.com/package/tree-clibasedoncmder#安装root@meideprac~$npminstall-gtree-cliroot@meideprac~$npminst......
  • leetcode 114. Flatten Binary Tree to Linked List 二叉树展开为链表(简单)
    一、题目大意给你二叉树的根结点root,请你将它展开为一个单链表:展开后的单链表应该同样使用TreeNode,其中right子指针指向链表中下一个结点,而左子指针始终为null。......
  • 98.validate-binary-search-tree 验证二叉搜索树
    二叉搜索树定义:节点左子树只包含小于当前节点的数;节点右子树只包含大于当前节点的数;所有左子树和右子树自身必须也是二叉搜索树。实际上,若中序遍历二叉搜索树,所得序列......
  • 从零开始配置vim(21)——lsp简介与treesitter 配置
    截止到上一篇文章,我们配置了neovim的很多内容了。具备了一些编辑器的常用功能了,而且可以胜任日常的文档编辑工作了。但是想作为一个可靠的代码编辑器还缺少重要的一环,即代......
  • Static Query on Tree (述链剖分+线段树)(2022杭电多校)
    题意:给定一棵树,nn 个结点。根为 11,所有的结点只能走向其父亲结点。有 qq 次询问,每次询问给出 33 个结点集合 A,B,CA,B,C。问树上有多少点满足如下条件:该点可以......
  • Python3中二叉树前序遍历的迭代解决方案
    Python3中二叉树前序遍历的迭代解决方案ABinaryTree二叉树是分层数据结构,其中每个父节点最多有2个子节点。在今天的文章中,我们将讨论一个在大量技术编码面试中出现......
  • Sourcetree 如何关联自己的gitlab仓库
    现在有些企业自己搭建了gitlab服务器,通过sourcetree从企业服务器拉取代码的时候会提示认证失败。今天搞了大半天才搞懂,给我自己做个笔记。添加账户托管服务商选择G......