def order(v, mode):
if v == None:
return []
if mode == "pre":
return [v.label] + order(v.left, s[0]) + order(v.right, s[1])
if mode == "in":
return order(v.left, s[2]) + [v.label] + order(v.right, s[3])
if mode == "post":
return order(v.left, s[4]) + order(v.right, s[5]) + [v.label]
定义如上二叉树遍历的伪代码,pre表示先序遍历,in表示中序列遍历,post表示后序遍历
{s[0],s[2],s[4]}与{s[1], s[3], s[5]} 中 都恰好包含"pre","in","post"
现在告诉你三个数组以及字符串数组s[]
a1[] = order(root, "pre")
a2[] = order(root, "in")
a3[] = order(root, "post")
问你是否存在一颗二叉树满足按照如上方式调用order函数之后产生a1[],a2[],a3[]
a1,a2,a3的长度相同,且不超过50