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 相关文章推荐
一个查看session内容的函数
Oct 09 PHP
php学习之 数组声明
Jun 09 PHP
PHP性能优化工具篇Benchmark类调试执行时间
Dec 06 PHP
解析PHP留言本模块主要功能的函数说明(代码可实现)
Jun 25 PHP
php的sprintf函数的用法 控制浮点数格式
Feb 14 PHP
PHP图片等比例缩放生成缩略图函数分享
Jun 10 PHP
PHP中让curl支持sock5的代码实例
Jan 21 PHP
php提交post数组参数实例分析
Dec 17 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
May 19 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
Mar 22 PHP
php设计模式之策略模式应用案例详解
Jun 17 PHP
PHP pthreads v3下的Volatile简介与使用方法示例
Feb 21 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/05/10 PHP
解析php中static,const与define的使用区别
2013/06/18 PHP
PHP中数组的分组排序实例
2014/06/01 PHP
简单的php+mysql聊天室实现方法(附源码)
2016/01/05 PHP
JavaScript 对象链式操作测试代码
2010/04/25 Javascript
Javascript 去除数组的重复元素
2010/05/04 Javascript
Jquery中dialog属性小记
2010/09/03 Javascript
细说浏览器特性检测(2)-通用事件检测
2010/11/05 Javascript
jquery显示和隐藏div特效实例
2013/02/27 Javascript
JavaScript实现彩虹文字效果的方法
2015/04/16 Javascript
jquery实现很酷的网页顶部图标下拉菜单效果
2015/08/22 Javascript
Javascript页面跳转常见实现方式汇总
2015/11/28 Javascript
Angularjs在初始化未完毕时出现闪烁问题的解决方法分析
2016/08/05 Javascript
深入浅出ES6之let和const命令
2016/08/25 Javascript
使用JS代码实现点击按钮下载文件
2016/11/12 Javascript
node.js学习之断言assert的使用示例
2017/09/28 Javascript
JavaScript时间与时间戳的转换操作实例分析
2018/12/07 Javascript
详解Vue调用手机相机和相册以及上传
2019/05/05 Javascript
用webpack4开发小程序的实现方法
2019/06/04 Javascript
JS合并两个数组的3种方法详解
2019/10/24 Javascript
vue-router 2.0 跳转之router.push()用法说明
2020/08/12 Javascript
Django静态资源URL STATIC_ROOT的配置方法
2014/11/08 Python
Python中join和split用法实例
2015/04/14 Python
padas 生成excel 增加sheet表的实例
2018/12/11 Python
分享Python切分字符串的一个不错方法
2018/12/14 Python
打包python 加icon 去掉cmd黑窗口方法
2019/06/24 Python
使用python分析统计自己微信朋友的信息
2019/07/19 Python
Python猴子补丁Monkey Patch用法实例解析
2020/03/23 Python
浅谈Python中文件夹和python package包的区别
2020/06/01 Python
Python 在函数上添加包装器
2020/07/28 Python
python如何将图片转换素描画
2020/09/08 Python
详解pandas映射与数据转换
2021/01/22 Python
干部作风整顿个人剖析材料
2014/10/06 职场文书
2014年实习班主任工作总结
2014/11/08 职场文书
2014年公务员工作总结
2014/11/18 职场文书
2015年班级工作总结范文
2015/04/03 职场文书