利用python设计判断两颗二叉树是否相同的算法
时间: 2023-12-16 13:03:13 浏览: 133
可以使用递归的方式判断两颗二叉树是否相同。具体实现可以参考以下代码:
```python
# 定义二叉树节点类
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
# 判断两颗二叉树是否相同的函数
def isSameTree(p: TreeNode, q: TreeNode) -> bool:
# 如果两个二叉树均为空,则认为它们相同
if not p and not q:
return True
# 如果一个二叉树为空,另一个不为空,则认为它们不相同
if not p or not q:
return False
# 如果两个二叉树的根节点的值不相同,则认为它们不相同
if p.val != q.val:
return False
# 递归判断两个二叉树的左子树和右子树是否相同
return isSameTree(p.left, q.left) and isSameTree(p.right, q.right)
```
在上述代码中,我们首先判断两个二叉树是否均为空,如果是,则认为它们相同;如果一个二叉树为空,另一个不为空,则认为它们不相同;如果两个二叉树的根节点的值不相同,则认为它们不相同;最后,我们递归判断两个二叉树的左子树和右子树是否相同。
阅读全文