169 字
1 分钟
算法之对称二叉树

剑指 Offer 28. 对称的二叉树#

请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。

例如,二叉树 [1,2,2,3,4,4,3] 是对称的。

image-20210619144112285

思路:

要想实现对称的二叉树需要满足:

image-20210619144459361

实现:

/**
* Definition for a binary tree node.
* function TreeNode(val) {
* this.val = val;
* this.left = this.right = null;
* }
*/
/**
* @param {TreeNode} root
* @return {boolean}
*/
var isSymmetric = function (root) {
if (!root) {
return true
}
return isEqual(root.left, root.right)
};
const isEqual = (left, right) => {
if (!left && !right) {
return true
}
if (!left || !right) {
return false
}
if (left.val !== right.val) {
return false;
}
return isEqual(left.left, right.right) && isEqual(left.right, right.left);
}
算法之对称二叉树
https://nollieleo.github.io/posts/算法之对称二叉树/
作者
翁先森
发布于
2021-06-19
许可协议
CC BY-NC-SA 4.0