用Python代码实现判断两个二叉树是否相同,并有主代码
时间: 2024-03-02 11:54:04 浏览: 106
可以通过递归的方式判断两个二叉树是否相同,具体实现如下:
```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:
# 如果两个节点均为 None,则认为相同
if not p and not q:
return True
# 如果只有一个节点为 None,则认为不相同
elif not p or not q:
return False
# 如果节点的值不相同,则认为不相同
elif p.val != q.val:
return False
# 递归判断左右子树是否相同
else:
return isSameTree(p.left, q.left) and isSameTree(p.right, q.right)
```
主代码如下:
```python
if __name__ == '__main__':
# 构造两个二叉树
p = TreeNode(1, TreeNode(2), TreeNode(3))
q = TreeNode(1, TreeNode(2), TreeNode(3))
# 判断两个二叉树是否相同
print(isSameTree(p, q)) # True
p = TreeNode(1, TreeNode(2), None)
q = TreeNode(1, None, TreeNode(2))
# 判断两个二叉树是否相同
print(isSameTree(p, q)) # False
```
以上代码中,我们先构造了两个二叉树,然后分别调用 `isSameTree` 函数判断它们是否相同,最终输出结果。
阅读全文