描述
给定一个二叉树,检查它是否是镜像对称的。
示例 1:
二叉树 [1,2,2,3,4,4,3]是对称的。
1<br /> / \<br /> 2 2<br /> / \ / \<br />3 4 4 3
但是下面这个 [1,2,2,null,3,null,3]则不是镜像对称的:
1<br /> / \<br /> 2 2<br /> \ \<br /> 3 3
题解
这道题的具体解法,可参看 力扣官方题解
/**
* Definition for a binary tree node.
* function TreeNode(val, left, right) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
*/
/**
* @param {TreeNode} root
* @return {boolean}
*/
var isSymmetric = function(root) {
return check(root, root)
};
const check = (leftPtr, rightPtr) => {
// 如果只有根节点,返回true
if (!leftPtr && !rightPtr) return true
// 如果左右节点只存在一个,则返回false
if (!leftPtr || !rightPtr) return false
return leftPtr.val === rightPtr.val && check(leftPtr.left, rightPtr.right) && check(leftPtr.right, rightPtr.left)
}