100. 相同的树
https://leetcode-cn.com/problems/same-tree/
解法一:
两棵树以相同的路径遍历(前序或后序)
class Solution:
def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
if p and q: #若p,q都非空,可以前序或后序遍历,只要两棵树遍历路径一致
if p.val == q.val: #值相等,则递归左右子树
return self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right)
else:
return False
elif (p and not q) or (q and not p): #若p,q有一个空,另一个非空
return False
else: #若p,q均为空
return True
也可以先判断非空,这样p,q一个空一个非空的条件较为简洁
class Solution:
def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
if not p and not q:
return True
elif not p or not q:
return False
else:
if p.val == q.val:
return self.isSameTree(p.left, q.left) and self.isSameTree(p.right, q.right)
else:
return False
最后更新于