二叉树重建

function reConstructBinaryTree($pre, $vin)
{
  // write code here
  return build($pre,$vin,0,count($pre)-1,0,count($vin)-1);
}
function build($pre,$inorder,$pstart,$pend,$istart,$iend){
      if($pstart>$pend||$istart>$iend)
        return;
    $root=$pre[$pstart];
      for($find=$istart;$find<=$iend;$find++){
        if($root===$inorder[$find]){
        break;
        }
}
$len=$find-$istart;
$res=new TreeNode($inorder[$find]);
$res->left=build($pre,$inorder,$pstart+1,$pstart+$len,$istart,$find-1);
$res->right=build($pre,$inorder,$pstart+$len+1,$pend,$find+1,count($inorder)-1);
return $res;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 给定一个前序和中序变量的结果,写一个算法重建这棵树:前序: a b d c e f中序: d b a e c f...
    HangChen阅读 3,535评论 0 3
  • 题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的...
    quiterr阅读 1,755评论 0 0
  • 题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数...
    minningl阅读 1,040评论 0 0
  • 题目一:根据前序遍历和后续遍历重建 思路: 因为前序遍历的第一个节点是根节点,所以先在中序序列中找到根节点,由于是...
    shuixingge阅读 1,755评论 0 0
  • 阿呆: 见字如面,你最近还好吗? 距上次见面已经半年之久,你我曾煮酒夜谈心事的时光我仍然记忆犹新,此时...
    荆棘鸟zzz阅读 1,618评论 0 1