美文网首页
剑指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()

相关文章

  • go 重建二叉树

    这是剑指offer的一道题。 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍...

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

    题目: 我依旧不想打,如题 主要学习一下递归思想,别的没了然后就是生成一个树节点,取列表指定树的下标代码 为了测试...

  • 二叉树遍历算法

    二叉树遍历算法有4种,先序、中序、后序和层序遍历 先序遍历:先根、后左、再右中序遍历:先左、后根、再右后序遍历:先...

  • 中序建立线索二叉树

    为什么使用中序遍历来建立线索二叉树? 因为中序遍历方便寻找前驱节点和后继节点,而先序遍历不方便找后继节点,后序遍历...

  • 重建二叉树与寻找下一个节点

    一、重建二叉树 题目:输入某二叉树的先序遍历和中序遍历的结果,请重建二叉树。假如输入的先序遍历和中序遍历的结果都不...

  • 二叉树 | 遍历 (链表实现)

    遍历 二叉树的遍历即通过一定顺序访问二叉树的所有结点。 先序遍历 : 根 左 右 中序遍历 : 左 根 右 后序遍...

  • 剑指Offer(四)

    剑指Offer(四) 重建二叉树 题目描述: 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的...

  • 重建二叉树

    《剑指offer》面试题7:重建二叉树 题目:输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前...

  • 二叉树的前序,中序,后序遍历的递归与非递归实现

    二叉树的遍历方式 先序遍历(Pre-Order Traversal)指先访问根,然后访问子树的遍历方式中序遍历(I...

  • 二叉树的操作

    /*主要内容:1、实现二叉树的先序、中序、后序遍历,包括递归方式和非递归方式*/ 实现二叉树的先序、中序、后序遍历...

网友评论

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

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