题解 | #牛群的轴对称结构#
牛群的轴对称结构
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#题解 | 前端刷题 文章被收录于专栏
题目考察的知识点 题目解答方法的文字分析 本题解析所用的编程语言 完整且正确的编程代码