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 Undefined index的问题
Jun 01 PHP
php数据结构 算法(PHP描述) 简单选择排序 simple selection sort
Aug 09 PHP
ThinkPHP使用smarty模板引擎的方法
Jul 01 PHP
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
Sep 12 PHP
php使用fsockopen函数发送post,get请求获取网页内容的方法
Nov 15 PHP
typecho插件编写教程(二):写一个新插件
May 28 PHP
Yii2.0中使用js异步删除示例
Mar 10 PHP
PHP去除空数组且数组键名重置的讲解
Feb 28 PHP
thinkphp5.1框架容器与依赖注入实例分析
Jul 23 PHP
PHP单文件上传原理及上传函数的封装操作示例
Sep 02 PHP
Laravel框架使用技巧之使用url()全局函数返回前一个页面的地址方法详解
Apr 06 PHP
PHP 超级全局变量相关总结
Jun 30 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读取ACCESS数据到MYSQL的代码
2011/05/11 PHP
基于PHP字符串的比较函数strcmp()与strcasecmp()的使用详解
2013/05/15 PHP
php获取新浪微博数据API实例
2013/11/12 PHP
thinkphp的CURD和查询方式介绍
2013/12/19 PHP
PHP自带方法验证邮箱是否存在
2016/02/01 PHP
php cookie工作原理与实例详解
2016/07/18 PHP
PHP实现的多维数组去重操作示例
2018/07/21 PHP
thinkphp5引入公共部分header、footer的方法详解
2018/09/14 PHP
JavaScript中的prototype使用说明
2010/04/13 Javascript
jQuery Mobile 导航栏代码
2013/11/01 Javascript
Javascript将字符串日期格式化为yyyy-mm-dd的方法
2016/10/27 Javascript
使用Vue.js创建一个时间跟踪的单页应用
2016/11/28 Javascript
利用Javascript实现简单的转盘抽奖
2017/02/13 Javascript
Vue 全局loading组件实例详解
2018/05/29 Javascript
React.js绑定this的5种方法(小结)
2018/06/05 Javascript
JavaScript常见事件处理程序实例总结
2019/01/05 Javascript
VUE前后端学习tab写法实例
2019/08/06 Javascript
vue获取data数据改变前后的值方法
2019/11/07 Javascript
ES6使用 Array.includes 处理多重条件用法实例分析
2020/03/02 Javascript
微信小程序点击按钮动态切换input的disabled禁用/启用状态功能
2020/03/07 Javascript
vue实现购物车功能(商品分类)
2020/04/20 Javascript
JS 数组和对象的深拷贝操作示例
2020/06/06 Javascript
vue中组件通信详解(父子组件, 爷孙组件, 兄弟组件)
2020/07/27 Javascript
JS+css3实现幻灯片轮播图
2020/08/14 Javascript
[01:02:07]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
简单介绍Python中用于求最小值的min()方法
2015/05/15 Python
Tensorflow之构建自己的图片数据集TFrecords的方法
2018/02/07 Python
PyQt5每天必学之拖放事件
2020/08/27 Python
Python reduce函数作用及实例解析
2020/05/08 Python
AmazeUI 等分网格的实现示例
2020/08/25 HTML / CSS
英国鞋类及配饰零售商:Kurt Geiger
2017/02/04 全球购物
世界排名第一的运动鞋市场:Flight Club
2020/01/03 全球购物
毕业生自荐信的主要内容
2013/10/29 职场文书
自考毕业生自我鉴定
2013/11/04 职场文书
大学新闻系应届生求职信
2014/06/02 职场文书
2015中学教学工作总结
2015/07/22 职场文书