101. 对称二叉树

题目

  • 给你一个二叉树的根节点 root , 检查它是否轴对称。

示例 1:

输入:root = [1,2,2,3,4,4,3]
输出:true

示例 2:

输入:root = [1,2,2,null,3,null,3]
输出:false

javascript

题解:递归

  • 由于给的函数只能传一个参数,所以重新定义一个含两个参数的函数
var isSymmetric = function(root) {
    if(root === null) return true
    //重写一个两个参数的函数
    const isMirror=(left,right)=>{
        //左右为空
        if(left === null && right === null) return true
        //左右只有一个为空的情况
        if(left === null || right === null) return false
        //左右值不相等
        if(left.val !== right.val) return false
        //递归判断对称的节点部分(左左与右右、左右与右左)
        return(isMirror(left.left, right.right) && isMirror(left.right, right.left))
    }
    return isMirror(root.left, root.right)
};

python

题解一、分成左子树和右子树判断

  • 由于给的函数只能传一个参数,所以重新定义一个含两个参数的函数
class Solution:
    def isSymmetric(self, root: Optional[TreeNode]) -> bool:
        def compareTree(left,right):
        
            if left==None and right==None:#左子树和右子树都空
                return True
            elif (left == None and right != None) or (left != None and right == None):#左子树、右子树空一个
                return False
        
            elif left.val != right.val:#检查值
                return False
            return compareTree(left.left,right.right) and compareTree(left.right,right.left)#递归左、右子树

        if root is None:#空树
            return True
        return compareTree(root.left,root.right)#调用函数

题解二、前序遍历+递归

  • 不仅要判断节点带值的情况,还要考虑空节点位置是否相同
class Solution:
    def isSymmetric(self, root: Optional[TreeNode]) -> bool:
        if root is None:
            return True
        if (root.left == None and root.right != None) or (root.left != None and root.right == None):
            return False
        
        if root.left != root.right:
            return False
        return isSymmetric(root.left.left,root.right.right) and isSymmetric(root.left.right,root.right.left)
posted @   Frommoon  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示