2018秋招小红书算法方向在线编程题
2021-06-23 21:03
标签:tle rip nbsp node str lag 分享 dtree spl 代码如下: 2018秋招小红书算法方向在线编程题 标签:tle rip nbsp node str lag 分享 dtree spl 原文地址:https://www.cnblogs.com/tsdblogs/p/9672129.htmlclass TreeNode:
def __init__(self, x):
self.left=None
self.right=None
self.value=x
def BuildTree(ceng, zhong):
if len(ceng)==0:
return None
if len(ceng)==1:
return TreeNode(ceng[0])
else:
flag=TreeNode(ceng[0])
root=ceng[0]
zong=zhong[:zhong.index(ceng[0])]
cen=[]
for i in ceng:
if i in zong:
cen.append(i)
flag.left=BuildTree(cen,zong)
cen = []
zong=zhong[zhong.index(ceng[0])+1:]
for i in ceng:
if i in zong:
cen.append(i)
flag.right=BuildTree(cen,zong)
return flag
def PrintLeafNode(root,node):
if root==None:
return
if root.left==None and root.right==None:
node.append(root.value)
PrintLeafNode(root.left, node)
PrintLeafNode(root.right, node)
def PreTravel(root,node):
if root==None:
return
node.append(root.value)
PreTravel(root.left, node)
PreTravel(root.right, node)
def BackTravel(root, node):
if root==None:
return
BackTravel(root.left, node)
BackTravel(root.right, node)
node.append(root.value)
ceng=input().strip().split(" ")
zhong=input().strip().split(" ")
root=BuildTree(ceng, zhong)
leaf=[]
pre=[]
back=[]
PrintLeafNode(root, leaf)
PreTravel(root, pre)
BackTravel(root, back)
print(" ".join(leaf))
print(" ".join(pre))
print(" ".join(back))
下一篇:排序算法