101. 对称二叉树

给定一个二叉树,检查它是否是镜像对称的。

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

    1
   / \
  2   2
 / \ / \
3  4 4  3

但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:

    1
   / \
  2   2
   \   \
   3    3

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/symmetric-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题解

/**
 * 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) {
    let res = []
    if (root == null) {
        return true
    }
    let bfs = (root, i) => {
        if (!res[i]) {
            res[i] = []
        }
        if (!root) {
            res[i].push(null)
            return
        }
        res[i].push(root.val)
        bfs(root.left, i + 1)
        bfs(root.right, i + 1)
    }
    bfs(root, 0)
    for (let i = 0; i < res.length; i++) {
        for (let j = 0; j < res[i].length / 2; j++) {
            if (res[i][j] != res[i][res[i].length - 1 - j]) {
                return false
            }
        }
    }
    return true
};