7.已知前序中序求后序

class Solution():
    def findroot(self,pre,mid,post):
        if len(pre) == 0:
            return 

        else:
            post.append(pre[0])
            m = mid.index(pre[0])
            self.findroot(pre[m+1:],mid[m+1:],post)
            self.findroot(pre[1:m+1],mid[:m],post)
            
            
    
    def findpost(self,pre,mid):
        post = []
        s.findroot(pre,mid,post)
        return post[::-1]


#test
pre = ['A','B','D','E','G','I','H','C','F']
mid = ['D','B','G','I','E','H','A','C','F']
s = Solution()
print(s.findpost(pre,mid))

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容