101.对称二叉树

2020-01-07  本文已影响0人  qiHuang112

题目#101.对称二叉树

给定一个二叉树,检查它是否是镜像对称的。
例如,二叉树 [1,2,2,3,4,4,3] 是对称的。


但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:


思路分析

判断一个二叉树是否是对称的,只需要判断这个二叉树是否与自己对称即可,代码如下

代码

fun isSymmetric(root: TreeNode?): Boolean {
    return isSymmetric(root, root)
}

private fun isSymmetric(a: TreeNode?, b: TreeNode?): Boolean {
    if (a == null && b == null) return true
    if (a == null || b == null) return false
    return a.`val` == b.`val` && isSymmetric(a.left, b.right) && isSymmetric(a.right, b.left)
}

代码分析

因为demo中给定的入参只有一个,所以重载方法,并将两个root传入private fun isSymmetric(a: TreeNode?, b: TreeNode?): Boolean {,要保证两个二叉树对称需要考虑三种情况:

上一篇下一篇

猜你喜欢

热点阅读