由前序遍历和中序遍历构建二叉树
Posted yingpu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了由前序遍历和中序遍历构建二叉树相关的知识,希望对你有一定的参考价值。
public Node reConstructBinaryTree(int[] pre,int[] in){ if(pre==null || in ==null){ return null; } Node mm = reConstructBinaryTree(pre,in,0,pre.length-1,0,in.length-1); return mm; } public Node reConstructBinaryTree(int[] pre,int[] in,int preStart,int preEnd,int inStart,int inEnd){ Node node = new Node(pre[preStart]); node.left = null; node.right = null; if(preStart == preEnd && inStart == inEnd){ return node; } int root = 0; for(root = instart;root<inEnd;root++){ if(pre[preStart] == in[root]){ break; } } int leftLength = root-inStart; int rightLength = inEnd-root; if(leftLength>0){ node.left = reConstructBinaryTree(pre,in,preStart+1,preStart+leftLength,inStart,root-1); } if(rightLength>0){ node.right = reConstructBinaryTree(pre,in,preStart+leftLength,root+1,inEnd); } return node; }
以上是关于由前序遍历和中序遍历构建二叉树的主要内容,如果未能解决你的问题,请参考以下文章
(王道408考研数据结构)第五章树-第三节2:二叉树构造和重建
二叉树进阶题------前序遍历和中序遍历构造二叉树;中序遍历和后序遍历构造二叉树