100相同的树

class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
# 这道题还是比较容易的,直接使用递归的方法就可以解决。
# 两个二叉树同时进行递归,判断每一次的节点是否相同就好了。
class Solution:
def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
return self.dfs(p,q)
def dfs(self,root1,root2):
# 注意这里有四种情况要分别进行判断,因为root1或者root2中其中有一个为空的话,
# 就一定是不同的二叉树,同时为空或者同时不为空才需要进行接下来的判断。
if not root1 and root2:
return False
elif not root2 and root1:
return False
elif not root1 and not root2:
return True
# 这是两个节点都不为空的情况,接着判断
else:
# 首先判断两个节点的值是否相同。
if root1.val == root2.val:
# 然后递归判断当前节点的左儿子和右儿子
return self.dfs(root1.left,root2.left) and self.dfs(root1.right,root2.right)
else:
return False
posted @ 2020-08-07 08:53  月为暮  阅读(237)  评论(0编辑  收藏  举报