PHP演算法-映象二叉樹的PHP實現
阿新 • • 發佈:2018-11-15
操作給定的二叉樹,將其變換為源二叉樹的映象。 二叉樹的映象定義:源二叉樹 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);