101. 对称二叉树
问题:
给你一个二叉树的根节点 root , 检查它是否轴对称
bash
输入:root = [1,2,2,3,4,4,3]
输出:true
bash
输入:root = [1,2,2,null,3,null,3]
输出:false
bash
提示:
树中节点数目在范围 [1, 1000] 内
-100 <= Node.val <= 100
解决:
要寻找对称,那只需要递归,然后让左右相等即可
go
func isSymmetric(root *TreeNode) bool {
if root == nil {
return true
}
return dfs(root.Left, root.Right)
}
func dfs(l, r *TreeNode) bool {
if l == nil && r == nil { //二者都是nil,对称返回true
return true
}
if l == nil || r == nil { //二者有一个为nil,另一个非nil,返回false
return false
}
if l.Val != r.Val {//二者值不同,返回false
return false
}
return dfs(l.Left, r.Right) && dfs(l.Right, r.Left)
}