剑指offer_对称的二叉树

74 阅读1分钟

请实现一个函数,用来判断一棵二叉树是不是对称的。

如果一棵二叉树和它的镜像一样,那么它是对称的。

Code

/**
 * 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) {
    
    function dfs(p1,p2){
        if (!p1 && !p2) return true
        if (!p1 || !p2) return false
        if (p1.val != p2.val) return false
        return dfs(p1.left,p2.right) && dfs(p1.right,p2.left)
    }
    
    if (!root) return true  //定义空树为对称
    return dfs(root.left,root.right) 
};