3,423
社区成员
发帖
与我相关
我的任务
分享
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
def ccompare(p, q):
print(p.val, q.val)
print(p.val != q.val)
if p.val != q.val:
print("???")
return False
else:
if p.left != None and q.left != None:
ccompare(p.left, q.left)
else:
return False
if p.right != None and q.right != None:
ccompare(p.right, q.right)
else:
return False
return True
def isSameTree(p, q):
if p == None and q == None:
return True
elif p != None and q != None:
print(ccompare(p, q))
else:
return False
p = TreeNode(1)
t = TreeNode(2)
q = TreeNode(1)
p.left = t
p.right = q
q.left = p
q.right = t
print(isSameTree(p, q))
#!/usr/bin/python
# -*- coding: utf-8 -*-
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
def ccompare(p, q):
print('%s,%s'%('None' if p==None else p.val, 'None' if q==None else q.val))
if p==None or q==None:
if p==None and q==None:
return True
return False
if p.val != q.val:
return False
else:
zz1=ccompare(p.left, q.left)
zz2=ccompare(p.right, q.right)
return zz1 and zz2
def isSameTree(p, q):
if p == None and q == None:
return True
elif p != None and q != None:
return ccompare(p, q)
else:
return False
p=TreeNode(1)
q=TreeNode(1)
p.left = TreeNode(2)
p.right = TreeNode(1)
q.left = TreeNode(2)
q.right = TreeNode(1)
q.left.left = TreeNode(2)
print(isSameTree(p, q))
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
def isSameTree(p, q):
if p == None and q == None:
return True # 都为空, 则相同
elif not (p != None and q != None):
return False # 一个空,一个不空,则不相同
else:
if p.val == q.val: # 如果根节点相等, 则判断左右子树是否都相等
return (isSameTree(p.left, q.left) and isSameTree(p.right, q.right))
else:
return False # 如果根节点不相等, 则不相同
p = TreeNode(1)
t = TreeNode(2)
q = TreeNode(1)
p.left = t
p.right = q
q.left = p
q.right = t
print(isSameTree(p, q))