其他分享
首页 > 其他分享> > 对称二叉树

对称二叉树

作者:互联网

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func isSymmetric(root *TreeNode) bool {
    return isMirror(root, root)
}

func isMirror(p, q *TreeNode)bool{
    if p==nil&&q==nil{// 左右子树都为空,则镜像
        return true
    }else if p==nil || q==nil{// 只有其中一个为空,另一个非空,非镜像
        return false
    }

    if p.Val==q.Val{// 左右子节点的值也相等时,判断具体的分支:左子树.右 = 右子树.左 && 左子树.左=右子树.右
        return isMirror(p.Left, q.Right)&&isMirror(p.Right, q.Left)
    }

    return false
}

标签:isMirror,TreeNode,Val,nil,return,二叉树,&&,对称
来源: https://www.cnblogs.com/pangqianjin/p/14637236.html