美文网首页
剑指Offer 4 :通过中序遍历和先序遍历来重构二叉树

剑指Offer 4 :通过中序遍历和先序遍历来重构二叉树

作者: clshinem | 来源:发表于2017-05-18 18:39 被阅读0次
    题目:

    我依旧不想打,如题

    主要学习一下递归思想,别的没了
    然后就是生成一个树节点,取列表指定树的下标
    代码

    def reConstructBinaryTree(pre,tin):
        if not pre or not tin:
            return None
        root = TreeNode(pre[0])
        tin_index = tin.index(pre[0])
        left = self.reConstructBinaryTree(pre[1:], tin[:tin_index])
        right = self.reConstructBinaryTree(pre[tin_index+1:], tin[tin_index + 1:])
        if left:
            root.left = left
        if right:
            root.right = right
        return root
    

    为了测试用例,写了一个二叉树的打印

    class TreeNode:
        def __init__(self, x):
            self.val = x
            self.left = None
            self.right = None
        def print_tree(self):
            if self.left:
                self.left.print_tree()
            print self.val
            if self.right:
                self.right.print_tree()
    

    相关文章

      网友评论

          本文标题:剑指Offer 4 :通过中序遍历和先序遍历来重构二叉树

          本文链接:https://www.haomeiwen.com/subject/jltexxtx.html