热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php实现二叉树的最大深度_算法镜像二叉树的PHP实现

操作给定的二叉树,将其变换为源二叉树的镜像。二叉树的镜像定义:源二叉树\10\\7911镜像二叉树\6\\975思路:1.左子树赋给tem

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

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

/ \

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在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要PHP进阶架构师>>>视频、面试文档免费获取​shimo.im

或 者关注咱们下面的知乎专栏PHP大神进阶​zhuanlan.zhihu.com



推荐阅读
  • 你知道Kafka和Redis的各自优缺点吗?一文带你优化选择,不走弯路 ... [详细]
  • 讨伐Java多线程与高并发——MQ篇
    本文是学习Java多线程与高并发知识时做的笔记。这部分内容比较多,按照内容分为5个部分:多线程基础篇JUC篇同步容器和并发容器篇线程池篇MQ篇本篇 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • kafka教程基本概念
    kafka教程基本概念 ... [详细]
  • laravel怎么关闭csrf验证
    php框架|Laravellaravelphp框架-Laravel在线生成php源码,vscode怎么解除注释,ubuntu进入后,tomcat放在哪了,爬虫美图,php打包工具, ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 如何使用代理服务器进行网页抓取?
    本文介绍了如何使用代理服务器进行网页抓取,并探讨了数据驱动对竞争优势的重要性。通过网页抓取,企业可以快速获取并分析大量与需求相关的数据,从而制定营销战略。同时,网页抓取还可以帮助电子商务公司在竞争对手的网站上下载数百页的有用数据,提高销售增长和毛利率。 ... [详细]
  • 本文介绍了一个React Native新手在尝试将数据发布到服务器时遇到的问题,以及他的React Native代码和服务器端代码。他使用fetch方法将数据发送到服务器,但无法在服务器端读取/获取发布的数据。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 如何通过swoole加速laravel的问题?
    这篇文章主要介绍了关于如何使用swoole加速laravel,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下再来复习一下吧,导致php慢的各种因素中解析性语言的 ... [详细]
  • InterfaceAsSchematic接口就是大纲接口在开发程序的“骨架”时非常有用。在设计组件时,使用接口进行设计和讨论都是对你的团队有益处的。比如定义一个BillingNot ... [详细]
author-avatar
DXJ健康快乐
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有