class treeNode(object):
def __init__(self, x):
self.val = x
self.left = None
self.right = None
def loopTree(node):
if node!= None:
print node.val
loopTree(node.left)
loopTree(node.right)
def isSameTree(r,s):
if r == None and s == None:
return True
elif r.val == s.val:
isLeft = isSameTree(r.left,s.left)
isRight = isSameTree(r.right,s.right)
if isLeft and isRight:
return True
else:
return False
else:
return False
def isSubTree(r,s):
if isSameTree(r,s):
return True
else:
leftSubTree = isSameTree(r.left,s)
rightSubTree = isSameTree(r.right,s)
if leftSubTree or rightSubTree:
return True
else:
return False
if __name__=='__main__':
t1 = treeNode(1)
t1.left = treeNode(1)
t1.right = treeNode(4)
t1.left.left = treeNode(2)
t1.left.right = treeNode(5)
t2 = treeNode(1)
t2.left = treeNode(2)
t2.right = treeNode(3)
print isSubTree(t1,t2)
判断一个树是否为另一棵树的子树
最新推荐文章于 2022-07-22 15:04:17 发布