题解 | #牛群的轴对称结构#

牛群的轴对称结构

https://www.nowcoder.com/practice/a200535760fb4da3a4568c03c1563689

考察的知识点:二叉树的对称性判断;

解答方法分析:

  1. 函数isSymmetric用于判断给定的二叉树是否是对称的。
  2. 首先检查根节点是否为空,如果为空,则认为是对称的。
  3. 调用辅助函数isMirror,判断root->left子树和root->right子树是否是镜像对称的。
  4. 函数isMirror是一个递归函数,用于判断两个节点leftright是否是镜像对称的。
  5. 如果两个节点都为空,认为是镜像对称的。
  6. 如果其中一个节点为空,另一个节点不为空,认为不是镜像对称的。
  7. 如果两个节点的值不相等,认为不是镜像对称的。
  8. 递归地判断left->leftright->right是否是镜像对称的,以及left->rightright->left是否是镜像对称的,如果两个条件都满足,认为是镜像对称的。

所用编程语言:C++;

完整编程代码:↓

/**
 * struct TreeNode {
 *  int val;
 *  struct TreeNode *left;
 *  struct TreeNode *right;
 *  TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 * };
 */
class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param root TreeNode类
     * @return bool布尔型
     */
    bool isSymmetric(TreeNode* root) {
        if (!root) return true;
        return isMirror(root->left, root->right);
    }

    bool isMirror(TreeNode* left, TreeNode* right) {
        if (!left && !right)
            return true;
        if (!left || !right)
            return false;    
        if (left->val != right->val)
            return false;
        return isMirror(left->left, right->right) && isMirror(left->right, right->left);
    }
};

全部评论

相关推荐

07-18 18:05
门头沟学院 Java
挂了 正式批求捞
投递滴滴等公司10个岗位
点赞 评论 收藏
分享
Lorn的意义:你这种岗位在中国现在要么牛马天天加班,要么关系户进去好吃好喝,8年时间,真的天翻地覆了,对于资本来说你就说一头体力更好的牛马,哎,退伍没有包分配你真的亏了。
点赞 评论 收藏
分享
醉蟀:你不干有的是人干
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务