【leetcode】Python实现-101.对称二叉树

101.对称二叉树

描述

我。。。看了别人的跌跌爬爬写出来的。。。

    def isSymmetric(self, root):
        """
        :type root: TreeNode
        :rtype: bool
        """
        def f(p, q):
            if p == None:
                return q == None
            if q == None:
                return p == None
            if p.val == q.val:
                return f(p.left, q.right) and f(p.right, q.left)
            if p.val != q.val:
                return False
        if root == None:
            return True
        return f(root.left, root.right)

关于二叉树的总结:对于树的操作,是必定要使用递归的方法的。对于求解树的任何问题,都先使用分治法,将树拆分为左子树和右子树(这里主要针对二叉树来说明),如果左子树和右子树都符合条件,则这颗树都满足条件。而左子树和右子树再拆分成左子树和右子树,进行递归。这里需要注意的是递归结束的条件,以及递归过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值