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

牛群的轴对称结构

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

题目考察的知识点

  • 二叉树遍历
  • 递归

题目解答方法的文字分析

题目要求检查给定的牛群树结构是否轴对称。可以通过递归的方式来解决该问题。首先判断根节点是否为空,若为空则认为是对称的。然后定义一个递归函数isMirror,该函数接收两个参数,分别表示当前节点的左子树和右子树。在isMirror函数中,首先判断左右节点是否都为空,若是则认为是对称的;然后判断左右节点是否有一个为空或者值不相等,若是则不对称;最后递归调用isMirror函数,传入左子树的左子树和右子树的右子树,以及左子树的右子树和右子树的左子树,判断这两部分是否对称。递归的结束条件是当左右节点都为空时,返回true。

本题解析所用的编程语言

本题解析用的编程语言是JavaScript。

完整且正确的编程代码

function TreeNode(val, left, right) {
    this.val = (val === undefined ? 0 : val);
    this.left = (left === undefined ? null : left);
    this.right = (right === undefined ? null : right);
}

function isSymmetric(root) {
    if (root === null) {
        return true;  // 如果根节点为空,则认为是对称的
    }
    
    return isMirror(root.left, root.right);
}

function isMirror(left, right) {
    // 如果左右节点都为空,则认为是对称的
    if (left === null && right === null) {
        return true;
    }
    
    // 如果左右节点其中一个为空,或者左右节点的值不相等,则不对称
    if (left === null || right === null || left.val !== right.val) {
        return false;
    }
    
    // 递归比较左右节点的子节点
    return isMirror(left.left, right.right) && isMirror(left.right, right.left);
}
#面试高频TOP202#
题解 | 前端刷题 文章被收录于专栏

题目考察的知识点 题目解答方法的文字分析 本题解析所用的编程语言 完整且正确的编程代码

全部评论

相关推荐

05-01 22:41
中南大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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