2个二叉树是否相等,可以通过递归的方式进行比较。首先比较两个二叉树的根节点,如果根节点不相等,则两个二叉树不相等;如果根节点相等,则比较两个二叉树的左子树和右子树是否相等。如果左子树和右子树都相等,则两个二叉树相等;否则两个二叉树不相等。
以下是一个Python实现的示例代码:
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def is_same_tree(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 is_same_tree(p.left, q.left) and is_same_tree(p.right, q.right)
在这个示例代码中,我们定义了一个TreeNode
类来表示二叉树的节点,其中包含节点的值、左子树和右子树。is_same_tree
函数接受两个二叉树的根节点p
和q
,并返回一个布尔值表示两个二叉树是否相等。
在函数中,我们首先判断两个二叉树是否都为空,如果是,则返回True;如果只有一个为空,则返回False。然后比较两个二叉树的根节点的值是否相等,如果不相等,则返回False。最后,递归比较两个二叉树的左子树和右子树是否相等,如果都相等,则返回True;否则返回False。
领取专属 10元无门槛券
手把手带您无忧上云