【关关的刷题日记57】Leetcode 101. Symmetric Tree

时间:2022-05-08
本文章向大家介绍【关关的刷题日记57】Leetcode 101. Symmetric Tree,主要内容包括题目、思路、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

关关的刷题日记57 – Leetcode 101. Symmetric Tree

题目

题目的意思是判断一棵树是否是镜像的,此处镜像指的是中心对称的树。

思路

思路:一棵树如果是镜像的,那么它的左右节点就得是镜像的。左右节点是镜像的,那么左节点的左子树和右节点的右子树必须得是镜像的,左节点的右子树和右节点的左子树必须得是镜像的,后面两对节点是否是镜像的判断方式和判断左右节点是否是镜像的判断方式一样,因此采用递归的方法。

class Solution {public:
    bool dfs(TreeNode* root1, TreeNode* root2)
    {
        if(!root1 && !root2)
            return true;
        if(!root2 || !root1 || root1->val!=root2->val)
            return false;
        return dfs(root1->left, root2->right) && dfs(root1->right, root2->left);
    }

    bool isSymmetric(TreeNode* root) {
        if(!root)
            return true;
        else
            return dfs(root->left, root->right);}};

人生易老,唯有陪伴最长情,加油!

以上就是关关关于这道题的总结经验,希望大家能够理解,有什么问题可以在我们的专知公众号平台上交流或者加我们的QQ专知-人工智能交流群 426491390,也可以加入专知——Leetcode刷题交流群(请先加微信小助手weixinhao: Rancho_Fang)。