ホームページ  >  記事  >  バックエンド開発  >  PHPでミラーバイナリツリーを実装する方法(コード)

PHPでミラーバイナリツリーを実装する方法(コード)

不言
不言転載
2018-09-30 14:12:502614ブラウズ

この記事の内容は、PHP でミラーリングされたバイナリ ツリー (コード) を実装する方法に関するものです。一定の参考価値があります。必要な友人は参照してください。お役に立てば幸いです。 。

指定されたバイナリ ツリーを操作し、ソース バイナリ ツリーの鏡像に変換します。
バイナリ ツリーのミラー定義: ソース バイナリ ツリー

PHPでミラーバイナリツリーを実装する方法(コード)

ミラー バイナリ ツリーtempを割り当てます

2. tempを右のサブツリーに割り当てます

3 . 右のサブツリーを左のサブツリーに割り当てますPHPでミラーバイナリツリーを実装する方法(コード)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);


object(TreeNode)#7 (3) {
  ["val"]=>
  int(8)
  ["left"]=>
  object(TreeNode)#5 (3) {
    ["val"]=>
    int(6)
    ["left"]=>
    object(TreeNode)#1 (3) {
      ["val"]=>
      int(5)
      ["left"]=>
      NULL
      ["right"]=>
      NULL
    }
    ["right"]=>
    object(TreeNode)#2 (3) {
      ["val"]=>
      int(7)
      ["left"]=>
      NULL
      ["right"]=>
      NULL
    }
  }
  ["right"]=>
  object(TreeNode)#6 (3) {
    ["val"]=>
    int(10)
    ["left"]=>
    object(TreeNode)#3 (3) {
      ["val"]=>
      int(9)
      ["left"]=>
      NULL
      ["right"]=>
      NULL
    }
    ["right"]=>
    object(TreeNode)#4 (3) {
      ["val"]=>
      int(11)
      ["left"]=>
      NULL
      ["right"]=>
      NULL
    }
  }
  
object(TreeNode)#7 (3) {
  ["val"]=>
  int(8)
  ["left"]=>
  object(TreeNode)#6 (3) {
    ["val"]=>
    int(10)
    ["left"]=>
    object(TreeNode)#4 (3) {
      ["val"]=>
      int(11)
      ["left"]=>
      NULL
      ["right"]=>
      NULL
    }
    ["right"]=>
    object(TreeNode)#3 (3) {
      ["val"]=>
      int(9)
      ["left"]=>
      NULL
      ["right"]=>
      NULL
    }
  }
  ["right"]=>
  object(TreeNode)#5 (3) {
    ["val"]=>
    int(6)
    ["left"]=>
    object(TreeNode)#2 (3) {
      ["val"]=>
      int(7)
      ["left"]=>
      NULL
      ["right"]=>
      NULL
    }
    ["right"]=>
    object(TreeNode)#1 (3) {
      ["val"]=>
      int(5)
      ["left"]=>
      NULL
      ["right"]=>
      NULL
    }
  }
}

以上がPHPでミラーバイナリツリーを実装する方法(コード)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。

関連記事

続きを見る