面試題7:重建二叉樹
阿新 • • 發佈:2018-12-02
style ext str null value var int cti 二叉樹
<?php header("content-type:text/html;charset=utf-8"); /* *重建二叉樹 P62 */ class TreeNode { var $val; var $left = NULL; var $right = NULL; function __construct($val) { $this->val = $val; } } function reConstructBinaryTree($pre, $vin) { if($pre == null || $vin == null){ return false; } $rootValue = $pre[0]; $root = new TreeNode($rootValue); $index = array_search($pre[0],$vin); $pre_left = array_slice($pre,1,$index); //1是數組的截取的起始索引位置,index是截取的長度,而不是截取的結束索引位置!!!並且截取之後原數組pre的長度不變 $vin_left = array_slice($vin,0,$index); $root->left = reConstructBinaryTree($pre_left,$vin_left); $pre_right = array_slice($pre,$index + 1); $vin_right = array_slice($vin,$index + 1); $root->right = reConstructBinaryTree($pre_right,$vin_right); return $root; } $pre = array(1,2,4,7,3,5,6,8); $vin = array(4,7,2,1,5,3,8,6); print_r(reConstructBinaryTree($pre,$vin));
面試題7:重建二叉樹