怎样判断俩个二叉树一样
判断俩个二叉树是否一样,需要比较它们的每个节点的值是否相等,以及它们的左右子树是否一样。具体的做法可以采用递归的方式:
-
首先判断根节点的值是否相等,若不相等则直接返回false。
-
然后递归比较左子树和右子树是否一样,若有任何一个子树不一样则返回false。
-
如果根节点的值相等且左右子树都一样,则说明这两棵二叉树是一样的,返回true。
下面是示例代码:
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
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)
其中,TreeNode是二叉树节点的定义,isSameTree是判断俩个二叉树是否一样的函数,它接受两个参数p和q,分别代表两棵二叉树的根节点。函数返回True表示这两棵二叉树一样,返回False表示不一样。
原文地址: https://www.cveoy.top/t/topic/Ml0 著作权归作者所有。请勿转载和采集!