您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

js实现重建二叉树的算法解析

2024/10/12 10:09:32发布32次查看
这篇文章给大家介绍的内容是关于js实现重建二叉树的算法解析,有着一定的参考价值,有需要的朋友可以参考一下。
题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。
分析前序遍历是中左右的顺序,中序遍历是左中右的顺序,那么对于{1,2,4,7,3,5,6,8}和{4,7,2,1,5,3,8,6}来说,1是根节点,然后1把中序遍历的序列分割为两部分,“4,7,2”为1的左子树上的节点,“5,3,8,6”为1的右子树上的节点,这样递归的分解下去即可
代码实现/* function treenode(x) {    this.val = x;    this.left = null;    this.right = null;} */function reconstructbinarytree(pre, vin){    var root = recon(0, pre.length-1, pre, 0, vin.length-1, vin);    return root;}function recon(prestart, preend, pre, vinstart, vinend, vin){    if(prestart > preend || vinstart > vinend) {        return null;    }    var node = new treenode(pre[prestart]);    for(var i = vinstart;i <= vinend;i++) {        if(vin[i] === pre[prestart]){            node.left = recon(prestart+1, prestart+i-vinstart, pre, vinstart, i-1, vin);            node.right = recon(prestart+i-vinstart+1, preend, pre, i+1, vinend, vin);        }    }    return node;}
相关推荐:
js中字符串的全排列的算法解析
js如何实现将上传图片并且压缩的方法
以上就是js实现重建二叉树的算法解析的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product