請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。
classnode():
def __init__(self,val):
self.val =val
self.lchild =none
self.rchild =none
class
tree():
def __init__(self,root):
self.root =root
def add(self,item):
node =node(item)
ifnot self.root:
self.root =node
return
else
: quene =[self.root]
while
quene:
cur_node = quene.pop(0
)
ifnot cur_node.lchild:
cur_node.lchild =node
return
else
:
ifnot cur_node.rchild:
cur_node.rchild =node
print(
222222
,node.val)
return
else
:
# def seek(self):
#
ifnot root:
#
return
# #方法1:廣度遍歷
# llist =[self.root.lchild]
# rlist =[self.root.rchild]
# lquene =[self.root.lchild]
# rquene =[self.root.rchild]
# print(rquene)
# # 廣度遍歷左子樹
#
while
lquene:
# cur_node = lquene.pop(0
)#
ifcur_node.lchild:
#
ifcur_node.rchild:
# #廣度遍歷右子樹
#
while
rquene:
# cur_node = rquene.pop(0
)#
ifcur_node.lchild:
#
ifcur_node.rchild:
# n1 =len(llist)
# n2 =len(rlist)
# l1 = [i.val for i in
llist]
# l2 = [i.val for i in
rlist]
# print(l1,l2)
#
if n1 !=n2:
#
return
false
#
for i in
range(n1):
#
if llist[i].val !=rlist[i].val:
#
return
false
#
return
true
#
#方法二:深度遍歷
#深度遍歷(先序)
def seek(self):
ifnot self.root:
return
def deep_xian(root,a):
if root==none:
return
else
: deep_xian(root.lchild,a)
deep_xian(root.rchild,a)
llist =
rlist =
deep_xian(root.lchild,llist)
deep_xian(root.rchild,rlist)
n1 =len(llist)
n2 =len(rlist)
l1 = [i.val for i in
llist]
l2 = [i.val for i in
rlist]
print(l1,l2)
if n1 !=n2:
return
false
for i in
range(n1):
if llist[i].val !=rlist[i].val:
return
false
return
true
# 測試
root = node(1
)etree =tree(root)
etree.add(2)
etree.add(3)
etree.add(4)
etree.add(5)
etree.add(6)
etree.add(7)
etree.add(8)
etree.add(9)
etree.add(10)
print(etree.seek())
判斷二叉樹是否對稱
題目描述 time limit 1000 ms memory limit 256 mb 層次遍歷的方式輸入乙個二叉樹,判斷這個二叉樹的結構 即不用管結點的值 是否映象對稱。輸入輸出格式 輸入描述 輸入一行字母,其中 表示空節點 字母長度小於1000 輸出描述 如果輸入的二叉樹對稱,輸出yes,否則輸...
判斷二叉樹是否是對稱二叉樹
給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 3 4 4 3 但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 3 3 遞迴實現 需要滿足兩個子樹 根節點值相同 根節點1的左子樹與根節點2右子樹相同 根節點1...
判斷是否為對稱二叉樹
description 判斷一棵二叉樹是否對稱。二叉樹節點定義如上次的結構相同 typedef struct node bn 不用關心輸入,二叉樹構造和刪除過程已經在main函式中實現,需要你們實現函式 int issymmetric bn root 來判斷一棵二叉樹是否對稱,對稱返回1,非對稱返回...