通过前序遍历和中序遍历构造二叉树

简介: 二叉树
class Solution {
    public int i = 0;
    public TreeNode buildTree(int[] preorder, int[] inorder) {
        if(preorder == null || inorder == null){
            return null;
        }
        return buildTreeChild(preorder,inorder,0,inorder.length-1);
    }
    public TreeNode buildTreeChild(int[] preorder,int[] inorder,int inbegin,int inend){
        if(inbegin > inend){
            return null;
        }
        TreeNode root = new TreeNode(preorder[i]);
        int rootIndex = findIndex(inorder,inbegin,inend,preorder[i]);
        i++;
        root.left = buildTreeChild(preorder,inorder,inbegin,rootIndex - 1);
        root.right = buildTreeChild(preorder,inorder,rootIndex + 1,inend);
        return root;
    }
    public int findIndex (int[] inorder,int inbegin,int inend,int key){
        for(int i = inbegin;i<= inend;i++){
            if(inorder[i] == key){
                return i;
            }
        }
        return -1;
    }
}
相关文章
|
6月前
|
Java C++ 索引
leetcode-106:从中序与后序遍历序列构造二叉树
leetcode-106:从中序与后序遍历序列构造二叉树
49 0
|
26天前
【LeetCode 37】106.从中序与后序遍历构造二叉树
【LeetCode 37】106.从中序与后序遍历构造二叉树
11 0
|
27天前
|
存储 索引 Python
从中序与后序遍历序列构造二叉树
【10月更文挑战第13天】这段内容介绍了一种基于中序和后序遍历序列构建二叉树的方法。通过识别后序遍历中的根节点,并利用中序遍历划分左右子树,进而递归构建整棵树。文中提供了具体示例及Python代码实现,并分析了该方法的时间与空间复杂度。
21_从中序与后序遍历序列构造二叉树
21_从中序与后序遍历序列构造二叉树
|
编译器
深入解析前序遍历:探索二叉树的前进之路
在计算机科学的广袤领域中,数据结构是解决问题的基础,而二叉树作为一种重要且常用的数据结构,为问题的处理提供了高效的方式。在二叉树的世界中,遍历是一项核心操作,它能够让我们有条不紊地访问每一个节点,实现从根部到叶子、从叶子到根部等不同的访问序列。而前序遍历(Preorder Traversal)作为一种经典的遍历方式,在这个过程中扮演着重要角色。
114 0
|
11月前
|
C++ 索引
从中序与后序遍历序列构造二叉树(C++实现)
从中序与后序遍历序列构造二叉树(C++实现)
72 1
|
12月前
|
存储 算法 C++
【二叉树】利用前序和中序遍历结果生成二叉树并输出其后序和层序遍历结果
【二叉树】利用前序和中序遍历结果生成二叉树并输出其后序和层序遍历结果
120 0
非递归方式实现二叉树的前、中、后序遍历
非递归方式实现二叉树的前、中、后序遍历
|
存储 算法
二叉树的前序/中序/后序遍历—采用递归与迭代两种方法实现嗷
二叉树的前序/中序/后序遍历—采用递归与迭代两种方法实现嗷