public class MyTree {
class TreeNode {
public TreeNode left;
public TreeNode right;
public int value;
public TreeNode(int v) {
value = v;
left = null;
right = null;
}
}
public TreeNode buildTree(int[] preArr, int[] inArr, int preL, int preR, int inL, int inR) {
if (preL > preR || inL > inR) return null;
int pivot = preArr[preL];
TreeNode root = new TreeNode(pivot);
int i = inL;
while (i <= inR && inArr[i] != pivot) {
i ++;
}
root.left = buildTree(preArr, inArr, preL + 1, preL + i - inL, inL, i - 1);
root.right = buildTree(preArr, inArr, preL + i - inL + 1, preR, i + 1, inR);
return root;
}
}
从前序遍历和中序遍历构造二叉树(Java)
最新推荐文章于 2025-03-19 18:26:42 发布
这段代码展示了如何使用前序遍历和中序遍历数组来构建一棵二叉树。核心方法`buildTree`通过递归的方式找到树的根节点,并分别构建左子树和右子树。
1856

被折叠的 条评论
为什么被折叠?



