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

101. 对称二叉树

时间:2024-11-11 15:46:32浏览次数:1  
标签:right TreeNode val nullptr return 二叉树 对称 101 left

  1. 题目链接

  2. 解题思路

    • 检查一个二叉树是否轴对称,其实和根结点无关,而是和其左右子树有关。
    • 左子树头等于右子树头,然后递归调用,「左子树的右儿子」要等于「右子树的左儿子」并且「左子树的左儿子」要等于「右子树的左儿子」。
  3. 代码

    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
     *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
     *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
     * };
     */
    class Solution {
    public:
        bool isSymmetric(TreeNode* head1, TreeNode *head2) {
            if (head1 == nullptr && head2 == nullptr) {
                return true;
            }
            if (head1 == nullptr) {
                return false;
            }
            if (head2 == nullptr) {
                return false;
            }
            if (head1->val != head2->val) {
                return false;
            }
            return isSymmetric(head1->left, head2->right) && isSymmetric(head1->right, head2->left);
        }
    
        bool isSymmetric(TreeNode* root) {
            return isSymmetric(root->left, root->right);
        }
    };
    

标签:right,TreeNode,val,nullptr,return,二叉树,对称,101,left
From: https://www.cnblogs.com/ouyangxx/p/18539894

相关文章

  • 代码随想录——二叉树-12.平衡二叉树
    自顶向下递归(前序遍历)这种方法是一开始想到的,虽然ac了但是对于它的本质却不清不楚,不知道时间复杂度,不知道属于前序遍历。思路首先得到root节点的左右子树的深度(左右),若深度差绝对值大于1(中),则root为根的树不是平衡二叉树;否则继续递归root的左右子树,其左右子树都是平衡二叉树......
  • 代码随想录——二叉树-11.完全二叉树的节点个数
    思路一、层序遍历,时间复杂度O(n)二、利用完全二叉树性质,时间复杂度O(logn*logn)(小于O(n))完全二叉树性质:若树深度为h,则前h-1层节点都达到最大值。第h层节点都集中在最左侧的位置完全二叉树要么1.是满二叉树2.最后一层没满满二叉树计算节点数太方便了,直接用公式2^h-1。......
  • 数据结构 ——— 链式二叉树oj题:对称二叉树
    目录题目要求手搓一个对称二叉树代码实现 题目要求给你一个二叉树的根节点 root ,检查它是否轴对称手搓一个对称二叉树代码演示://数据类型typedefintBTDataType;//二叉树节点的结构typedefstructBinaryTreeNode{ BTDataTypedata;//每个节点的数据......
  • 实现链式结构二叉树
    目录需要实现的操作链式结构二叉树实现结点的创建前序遍历中序遍历后序遍历计算结点个数计算二叉树的叶子结点个数 计算二叉树第k层结点个数计算二叉树的深度查找值为x的结点 销毁层序遍历判断是否为完全二叉树 总结需要实现的操作//前序遍历voidPreOr......
  • 每日一题之二叉树
    已知结点元素值为正整数且值不相同的一棵二叉树。该二叉树通过给出其先序遍历序列和中序遍历序列构造而成。输入一个整数x,针对此二叉树编写程序求出x的右子树中所有结点值的和(若x不在树上,输出-1)。 输入说明:第一行输入某二叉树的先序遍历序列第二行输入该二叉树的中序遍历......
  • AES对称加密基础理解极其简单实用
    什么是AES对称加密?AES(AdvancedEncryptionStandard,高级加密标准)是一种对称加密算法,用于加密和解密数据。对称加密意味着加密和解密操作使用相同的密钥。AES被广泛应用于现代信息安全领域,尤其是在加密通信、文件保护和数据传输中。AES的基本工作原理:分组加密:AES是一个......
  • 根据二叉树创建字符串
    题目:606.根据二叉树创建字符串-力扣(LeetCode)给你二叉树的根节点 root ,请你采用前序遍历的方式,将二叉树转化为一个由括号和整数组成的字符串,返回构造出的字符串。空节点使用一对空括号对 "()" 表示,转化后需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空......
  • 代码随想录算法训练营第18天| 530.二叉搜索树的最小绝对差, 501.二叉搜索树中的众数 , 2
    530.二叉搜索树的最小绝对差文章链接:https://programmercarl.com/0530.二叉搜索树的最小绝对差.html视频链接:https://www.bilibili.com/video/BV1DD4y11779/?vd_source=6cb513d59bf1f73f86d4225e9803d47b题目链接:https://leetcode.cn/problems/minimum-absolute-difference-in......
  • 判断该给定的二叉树是否为二叉搜索树
    习题4.3是否二叉搜索树/*typedefstructTNode*Position;typedefPositionBinTree;structTNode{ ElementTypeData; BinTreeLeft; BinTreeRight;};*/BinTreeB=NULL;//全局指针,用来记录中序的上一个结点boolIsBST(BinTreeT){ //如果结点为空直接返回tru......
  • 力扣(LeetCode)106. 从中序与后序遍历序列构造二叉树
    一、目标  给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。二、代码分析总体代码:/***Definitionforabinarytreenode.*publicclassTreeNode{*int......