【JS每日一算法】🟩95.对称二叉树(深度优先)

254 阅读1分钟

给你一个二叉树的根节点 root , 检查它是否轴对称。

提示:

  • 树中节点数目在范围 [1, 1000] 内
  • -100 <= Node.val <= 100

示例 1:

symtree1.jpg

输入: root = [1,2,2,3,4,4,3]
输出: true

示例 2:

symtree2.jpg

输入: root = [1,2,2,null,3,null,3]
输出: false

题解:

更多JS版本题解点击链接关注该仓库👀个人博客

/**
 * @description: 深度优先  TC:O(n)  SC:O(n)
 * @author: JunLiangWang
 * @param {*} root  给定树头节点
 * @return {*}
 */
function dfs(root) {
    /**
     * 该方案采用深度优先递归的方式,我们将树的左子树/右子树
     * 看作两个独立的树,该题就与判断两棵树是否相同是一致
     * 的,只不过判断两棵树是否相同是左节点与左节点比较
     * 而此处是左节点与右节点比较
     */

    function recursion(p, q) {
        if (p == null && q == null) return true
        else if (p == null || q == null) return false
        else if (p.val != q.val) return false
        else return recursion(p.left, q.right) && recursion(p.right, q.left)
    }

    return recursion(root.left, root.right)
}

来源:力扣(LeetCode)