对称二叉树
作者:互联网
- 使用递归实现
/**
* 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