PHP获取二叉树镜像的方法


Posted in PHP onJanuary 17, 2018

本文实例讲述了PHP获取二叉树镜像的方法。分享给大家供大家参考,具体如下:

问题

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

解决思路

翻转二叉树,有递归和非递归两种方式,非递归就是使用队列。

实现代码

<?php
/*class TreeNode{
 var $val;
 var $left = NULL;
 var $right = NULL;
 function __construct($val){
  $this->val = $val;
 }
}*/
function Mirror(&$root)
{
 if($root == NULL)
  return 0;
 $queue = array();
 array_push($queue, $root);
 while(!empty($queue)){
  $node = array_shift($queue);
  $tmp = $node->left;
  $node->left = $node->right;
  $node->right = $tmp;
  if($node->left != NULL)
   array_push($queue, $node->left);
  if($node->right != NULL)
   array_push($queue, $node->right);
 }
}

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP出错界面
Oct 09 PHP
PHPMyAdmin 快速配置方法
May 11 PHP
php中判断字符串是否全是中文或含有中文的实现代码
Sep 16 PHP
php写入数据到CSV文件的方法
Mar 14 PHP
PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
Nov 16 PHP
PHP命名空间和自动加载类
Apr 03 PHP
基于php实现的验证码小程序
Dec 13 PHP
微信公众号模板消息群发php代码示例
Dec 29 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
Feb 07 PHP
php layui实现前端多图上传实例
Jul 30 PHP
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
Oct 09 PHP
Laravel框架中集成MongoDB和使用详解
Oct 17 PHP
PHP实现按之字形顺序打印二叉树的方法
Jan 16 #PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
Jan 16 #PHP
PHP实现找出链表中环的入口节点
Jan 16 #PHP
详解thinkphp中的volist标签
Jan 15 #PHP
thinkphp 中的volist标签在ajax操作中的特殊性(推荐)
Jan 15 #PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
Jan 15 #PHP
PHP7扩展开发之hello word实现方法详解
Jan 15 #PHP
You might like
深入PHP中慎用双等于(==)的详解
2013/06/06 PHP
详解PHP中strlen和mb_strlen函数的区别
2014/03/07 PHP
PHP基于redis计数器类定义与用法示例
2018/02/08 PHP
PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能
2019/05/21 PHP
Yii框架参数配置文件params用法实例分析
2019/09/11 PHP
各情景下元素宽高的获取实现代码
2011/09/13 Javascript
JavaScript显示当然日期和时间即年月日星期和时间
2013/10/29 Javascript
Jquery中request和request.form和request.querystring的区别
2015/11/26 Javascript
jQuery实现返回顶部功能
2016/02/23 Javascript
针对JavaScript中this指向的简单理解
2016/08/26 Javascript
js自定义弹框插件的封装
2020/08/24 Javascript
node作为中间服务层如何发送请求(发送请求的实现方法详解)
2018/01/02 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
2019/04/02 Javascript
JavaScript 作用域scope简单汇总
2019/10/23 Javascript
vue随机验证码组件的封装实现
2020/02/19 Javascript
[02:48]DOTA2英雄基础教程 拉席克
2013/12/12 DOTA
[58:46]OG vs NAVI 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python元组拆包和具名元组解析实例详解
2018/03/26 Python
详解Python最长公共子串和最长公共子序列的实现
2018/07/07 Python
python 列表递归求和、计数、求最大元素的实例
2018/11/28 Python
python实现打砖块游戏
2020/02/25 Python
解决python 执行sql语句时所传参数含有单引号的问题
2020/06/06 Python
Python读取pdf表格写入excel的方法
2021/01/22 Python
python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
2021/01/28 Python
python实现控制台输出颜色
2021/03/02 Python
HTML5标签嵌套规则详解【必看】
2016/04/26 HTML / CSS
班级体育活动总结
2014/07/05 职场文书
副校长个人对照检查材料思想汇报
2014/10/04 职场文书
个人债务授权委托书
2014/10/17 职场文书
2014年煤矿工人工作总结
2014/12/08 职场文书
销售助理岗位职责
2015/02/11 职场文书
上课睡觉万能检讨书
2015/02/17 职场文书
罗马假日观后感
2015/06/08 职场文书
2016年机关单位节能宣传周活动总结
2016/04/05 职场文书
2019年年中工作总结讲话稿模板
2019/03/25 职场文书
解决MultipartFile.transferTo(dest) 报FileNotFoundExcep的问题
2021/07/01 Java/Android