地址:https://leetcode-cn.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal/php
<?php /** 根據一棵樹的中序遍歷與後序遍歷構造二叉樹。 注意: 你能夠假設樹中沒有重複的元素。 例如,給出 中序遍歷 inorder = [9,3,15,20,7] 後序遍歷 postorder = [9,15,7,20,3] 返回以下的二叉樹: 3 / \ 9 20 / \ 15 7 來源:力扣(LeetCode) 連接:https://leetcode-cn.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal 著做權歸領釦網絡全部。商業轉載請聯繫官方受權,非商業轉載請註明出處。 */ /** * Definition for a binary tree node. * class TreeNode { * public $val = null; * public $left = null; * public $right = null; * function __construct($value) { $this->val = $value; } * } */ class Solution { /** * @param Integer[] $inorder * @param Integer[] $postorder * @return TreeNode */ function buildTree($inorder, $postorder) { if(!$postorder) return null; $x = array_pop($postorder); $node = new TreeNode($x); $key = array_search($x,$inorder); $node->left= $this->buildTree(array_slice($inorder,0,$key),array_slice($postorder,0,$key)); $node->right = $this->buildTree(array_slice($inorder,$key+1),array_slice($postorder,$key)); return $node; } }