给定一个二叉树,检查它是否是镜像对称的。
例如,二叉树 [1,2,2,3,4,4,3]
是对称的。
我们使用递归法解决此问题
代码如下:
/**
* Definition for a binary tree node.
* public class TreeNode {
* public var val: Int
* public var left: TreeNode?
* public var right: TreeNode?
* public init(_ val: Int) {
* self.val = val
* self.left = nil
* self.right = nil
* }
* }
*/
class Solution{
func isSymmetric(_root:TreeNode?)->Bool{
if root==nil{
return true
}
return Symmetirc(p:root?.left,q:root?.right)
}
//判断两个节点是否对称
func Symmetric(p:TreeNode?,q:TreeNode?)->Bool{
if p==nil,q==nil{
return true
}
if p==nil||q==nil{
return false
}
return p?.val==q?.val,Symmetric(p:p?.left,q:q?.right),Symmetirc(p:p?.right,q:q?.left)
}
}