题目描述
输入一串二叉树,输出其前序遍历。
输入格式
第一行为二叉树的节点数 nn。(1≤n≤26)
后面 n 行,每一个字母为节点,后两个字母分别为其左右儿子。
空节点用 *
表示
输出格式
二叉树的前序遍历。
输入输出样例
输入 #1
6
abc
bdi
cj*
d**
i**
j**
输出 #1
abdicj
思路:每组元素中的第二个数都是第一个元素的左子树,第三个元素则是右子树。所以只要不停的先找一个元素的左子树,再找右子树就可以了。直到找不到了就可以直接输出每组的最前面的元素。
代码如下:(无需二叉树,正常递归即可)
def judge(m):
print(a[m][0], end='')
for i in range(1, 3):
for j in range(n):
if a[m][i] == a[j][0]:
judge(j)
n = int(input())
a = [[i for i in input()] for _ in range(n)]
judge(0)