025-力扣刷题-100-相同的树

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

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

示例 1: image.png

输出: true 示例 2:

image.png

输出: false 示例 3:

image.png

输出: false 主要是递归的使用

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution(object):
    def isSameTree(self, p, q):
        """
        :type p: TreeNode
        :type q: TreeNode
        :rtype: bool
        """
        if p is None and q is None:  #如果一开始的这两个节点都是空的话那么就是说这两个节点不存在那么就是相等的,即使是递归中,这两个节点都是不存在的,返回True然后接着去判断别的节点就好了
            return True

        if p is not None and q is not None:  #如果说这两个节点都不是空的话,那么就判断这个同等位置的节点的值是不是一样的,他们的左孩子以及右孩子是不是一样的.递归进行调用.这样递归判断后,三个条件满足就说明这个节点是相等的,最后这颗树是相等的.
            return p.val == q.val and self.isSameTree( p.left, q.left) and self.isSameTree(p.right, q.right)
        return False  #如果存在一棵树非空,一棵树是空的那么就返回False