已知二叉树前序、中序遍历用python求后序遍历

这里用到递归的方法:

递归的关键是找到出口和递归的状态(也就是要写出递归第一个完整的过程),这样计算机才能明白以后的若干步怎么去走。

当然,实际中递归的方法效率不高(不表明它不快),因为要频繁调用函数本身,所以容易爆炸(哈哈哈)。

代码:

def last_sort(str1, str2):
    if len(str2) <= 1:
        return str2
    else:
        return last_sort(str1[1:str2.index(str1[0])+1], str2[:str2.index(str1[0])]) + last_sort(str1[str2.index(str1[0])+1:],
                                                                                                str2[str2.index(str1[0])+1:
                                                                                                ]) + str1[0:1]

str1 = ['A', 'B', 'D', 'C', 'E', 'F']
str2 = ['D', 'B', 'A', 'E', 'C', 'F']
print(last_sort(str1, str2))

猜你喜欢

转载自blog.csdn.net/llm666coder/article/details/79770434