1. 程式人生 > >PHP演算法-映象二叉樹的PHP實現

PHP演算法-映象二叉樹的PHP實現

操作給定的二叉樹,將其變換為源二叉樹的映象。 
二叉樹的映象定義:源二叉樹 
            8
           /  \
          6   10
         / \  / \
        5  7 9 11
        映象二叉樹
            8
           /  \
          10   6
         / \  / \
        11 9 7  5
思路:
1.左子樹賦給temp
2.temp賦給右子樹
3.右子樹賦給左子樹
4.遞迴
mirror(root)
    temp=root->left
    root->left=root->right
    root-right=temp
    mirror(root->left)
    mirror(root->right)
    
class TreeNode{
    var $val;
    var $left = NULL;
    var $right = NULL;
    function __construct($val){
        $this->val = $val;
    }   
}
function Mirror(&$root){
        if($root==null){
                return null;
        }   
        $temp=$root->left;
        $root->left=$root->right;
        $root->right=$temp;
        Mirror($root->left);
        Mirror($root->right);
}

//構造一個樹
$node5=new TreeNode(5);
$node7=new TreeNode(7);
$node9=new TreeNode(9);
$node11=new TreeNode(11);
$node6=new TreeNode(6);
$node10=new TreeNode(10);
$node8=new TreeNode(8);

$node8->left=$node6;
$node8->right=$node10;
$node6->left=$node5;
$node6->right=$node7;
$node10->left=$node9;
$node10->right=$node11;

$tree=$node8;

//映象這棵二叉樹
var_dump($tree);
Mirror($tree);
var_dump($tree);