leetcode:对称二叉树

题目描述

题目链接:101. 对称二叉树 - 力扣(LeetCode)

题目分析

题目中说至少存在一个节点,所以我们只需要对比左右子树

写一个子函数对比左右子树:用递归的思路,左子树的左子树和右子树的右子树对比,左子树的右子树和右子树的左子树对比,我们只需要考虑几种情况:

  1. 如果左右子树都为空,则返回true
  2. 如果左右子树只有一棵为空,则返回false
  3. 如果左右子树都不为空,且值不相等,则返回false
  4. 如果左右子树都不为空,且值相等,则递归调用函数,对比左子树的左子树和右子树的右子树&&左子树的右子树和右子树的左子树,如果都为真则返回true

代码示例

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
bool _isSymmetric(struct TreeNode*root1,struct TreeNode*root2)
{
    if(root1==NULL&&root2==NULL)
        return true;
    if(root1==NULL||root2==NULL)
        return false;
    if(root1->val!=root2->val)
        return false;
    return _isSymmetric(root1->left,root2->right)&&_isSymmetric(root1->right,root2->left);
}
bool isSymmetric(struct TreeNode* root) {
    return _isSymmetric(root->left,root->right);
}

相关推荐

  1. leetcode-对称

    2023-12-06 12:46:01       58 阅读
  2. LeetCode101 对称

    2023-12-06 12:46:01       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-06 12:46:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-06 12:46:01       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-06 12:46:01       82 阅读
  4. Python语言-面向对象

    2023-12-06 12:46:01       91 阅读

热门阅读

  1. 机器学习在缺陷检测中的实际效果与应用案例

    2023-12-06 12:46:01       66 阅读
  2. flask 异步编程 asyncio

    2023-12-06 12:46:01       61 阅读
  3. 华为鲲鹏+银河麒麟V10编译FreeSWITCH1.10.9

    2023-12-06 12:46:01       85 阅读
  4. Git配置

    Git配置

    2023-12-06 12:46:01      62 阅读
  5. npmmirror 镜像站(国内好用的npm镜像站 cnpm)

    2023-12-06 12:46:01       63 阅读