php二叉树算法的应用场景,关于php:算法镜像二叉树的PHP实现

有根底的间接看代码即可

操作给定的二叉树,将其变换为源二叉树的镜像。

二叉树的镜像定义:源二叉树

/

10

/ /

7 9 11

镜像二叉树

/

6

/ /

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);

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

}

}

}

以上内容心愿帮忙到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不晓得该从那里动手去晋升,对此我整顿了一些PHP高级、架构视频材料和大厂PHP面试PDF| 收费获取能够关注公众号:PHP开源社区

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值