100. 相同的树(Python)

更多题目移步【力扣简单题】

题目

难度:★☆☆☆☆
类型:二叉树

给定两个二叉树,编写一个函数来检验它们是否相同。

如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

示例

示例 1:

输入: [1,2,3], [1,2,3]

     1         1
    / \       / \
   2   3     2   3

输出: true

示例 2:

输入: [1,2], [1,null,2]

       1         1
      /            \
     2              2

输出: false

示例 3:

输入: [1,2,1], [1,1,2]

      1         1
    /  \       /  \
   2   1      1   2

输出: false

解答

判定两棵二叉树是否相等,需要进行如下判断:

  1. 两棵二叉树均为空,则相等;

  2. 两棵二叉树其中一棵为空,另一棵不为空,则不相等;

  3. 两棵二叉树均不为空,如果根节点的值相等,左子树相等和右子树相等,则这两棵二叉树相等,否则不相等。

代码实现如下:

class Solution:
    def isSameTree(self, p, q):
        def same_tree(p, q):
            if not p and not q:                         # 两棵树均为空
                return True
            elif not p and q or not q and p:            # 两棵树只有一棵为空
                return False
            else:
                return p.val == q.val and same_tree(p.left, q.left) and same_tree(p.right, q.right)
        return same_tree(p, q)

如有疑问或建议,欢迎评论区留言~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容