101. 对称二叉树

Posted Debroon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了101. 对称二叉树相关的知识,希望对你有一定的参考价值。

101. 对称二叉树

 


题目

传送门:https://leetcode.cn/problems/symmetric-tree/


 


算法设计:深度优先搜索

二叉树原问题 = 根节点 + 左右子树的子问题

俩棵子树是否对称 = 当前节点相同 + 左右子树相同

class Solution 
public:
    bool isSymmetric(TreeNode* root) 
        if (root == NULL) return true;
        return dfs(root->left, root->right);     // 检查两棵子树是否对称
    

    bool dfs(TreeNode* left, TreeNode* right) 
        if (left == NULL || right == NULL) return left == right;                 // 俩个节点都为空,则true;只有一个空,则false
        if (left->val != right->val) return false;                               // 左右节点值不同,则false
        return dfs(left->right, right->left) && dfs(left->left, right->right);   // 左右子树也需要镜像对称
    
;

以上是关于101. 对称二叉树的主要内容,如果未能解决你的问题,请参考以下文章

二叉树算法—广度搜索算法使用以及变形

⭐算法入门⭐《二叉树》简单03 —— LeetCode 101. 对称二叉树

代码随想录算法训练营第15天 | ● 层序遍历 10 ● 226.翻转二叉树 ● 101.对称二叉树 2

LeetCode(算法)- 101. 对称二叉树

Python算法系列—深度优先遍历算法

leetcode算法101.对称二叉树