使用二叉树的相关定义及函数在:二叉树最小结构(C++版本)

循环实现:

void MirrorBinaryTree(BinaryTreeNode* pRoot)
{if (nullptr == pRoot) return;std::queue<BinaryTreeNode*> datas;datas.push(pRoot);while (!datas.empty()){BinaryTreeNode* pCurNode = datas.front();datas.pop();if (nullptr == pCurNode->pLeft && nullptr == pCurNode->pRight) continue;std::swap(pCurNode->pLeft, pCurNode->pRight);if (pCurNode->pLeft != nullptr) datas.push(pCurNode->pLeft);if (pCurNode->pRight != nullptr) datas.push(pCurNode->pRight);}
}void MirrorBinaryTree(MyBinaryTree& binTree)
{MirrorBinaryTree(binTree);
}

递归实现:

void MirrorBinaryTree(BinaryTreeNode* pRoot)
{if (nullptr == pRoot) return;if (nullptr == pRoot->pLeft && nullptr == pRoot->pRight) return;std::swap(pRoot->pLeft, pRoot->pRight);if (pRoot->pLeft != nullptr) MirrorBinaryTree(pRoot->pLeft);if (pRoot->pRight != nullptr) MirrorBinaryTree(pRoot->pRight);
}void MirrorBinaryTree(MyBinaryTree& binTree)
{MirrorBinaryTree(binTree.pRoot);
}

19. 镜像二叉树(C++版本)相关推荐

  1. [剑指offer]面试题19:二叉树的镜像

    面试题19:二叉树的镜像 题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像. 二叉树结点的定义如下: struct BinaryTreeNode {int value;BinaryTreeNo ...

  2. 【递归】剑指offer——面试题19:二叉树的镜像

    剑指offer--面试题19:二叉树的镜像 Solution1: 递归解法,牢记! 根结点为空的情况容易漏,注意! /* struct TreeNode {int val;struct TreeNod ...

  3. (剑指Offer)面试题19:二叉树的镜像

    题目: 操作给定的二叉树,将其变换为源二叉树的镜像. 二叉树的定义如下: struct TreeNode{int val;TreeNode* left;TreeNode* right; }; 输入描述 ...

  4. ubuntu php7.4,在Ubuntu 18.04/19.04/16.04版本上安装PHP 7.4的简单方法

    以下介绍安装PHP 7.4的方法非常的简单,适用于Ubuntu 18.04/19.04/16.04版本上,所安装的版本是PHP 7.4.0 RC1,只需要添加PHP ppa存储库并运行相关命令即可完成 ...

  5. 面试题19:二叉树镜像

    递归方法非常简单: 1 void MirrorRecursively(BinaryTreeNode *pNode) 2 { 3 if((pNode == NULL) || (pNode->m_p ...

  6. Windows11-10原版iso镜像仓库,版本长期更新维护

    - 前文 - 欢迎来到Windows11/10-iso仓库,相信这里有你寻找的Win11/10系统iso镜像.仓库是从预览版本win10 21H2-19044.1147,正式版win10 21H1-1 ...

  7. pip 指定镜像源 指定版本 批量安装

    要用 pip 安装指定版本的 Python 包,只需通过 == 操作符 指定 例如:pip install pycrypto==2.6.1 将安装pycrypto2.6.1 版本. 要使用pip 批量 ...

  8. 清华镜像源软件版本的确定(kafka安装)

    今天想学习一下 kafka,打算在虚拟机安装,命令如下: wget http://apache.fayea.com/kafka/1.1.0/kafka_2.12-1.1.0.tgz 却发现找不到这个版 ...

  9. NodeJS插件验证:Jenkins官方Alpine镜像之LTS版本

    在前面的文章中我们验证了Alpine版本的Linux发行版和NodeJS安装包不兼容的情况,并给出了解决的方法.而Jenkins本身也提供Alpine版本的镜像,这篇文章来确认一下目前最新的Alpin ...

  10. LeetCode101——对称二叉树——c++版本实现

    题面来啦~ 给定一个二叉树,检查它是否是镜像对称的. 例如,二叉树 [1,2,2,3,4,4,3] 是对称的. 1/ \2 2/ \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3, ...

最新文章

  1. 反击CobaltStrike
  2. 【Python基础】Pandas笔记---概述与数据结构
  3. 使用HTML5 details,summary实现,展开,下拉,树的效果
  4. memcached全面剖析 –3.memcached的删除机制和发展方向
  5. ubuntu18虚拟机添加网卡后,不自动启用dhcp
  6. JAVA Web学习篇--Servlet
  7. swiper4.0(移动端)轮播图 - 案例篇
  8. OpenCV计算机视觉实战(Python版)_003阈值与平滑处理
  9. 基于HTML5的贪吃蛇游戏的设计与实现
  10. 性能提升160%,为全球提供顶级算力:阿里云发布第三代神龙云服务器
  11. avr单片机c语言教程,十天学会AVR单片机和C语言视频教程
  12. 电商后台之【商品管理系统】
  13. 无人机巡检系统设想路线
  14. 彩色数字图像处理基础
  15. 成年人社交中的10个潜规则
  16. 文本prompting综述
  17. CS231n学习笔记-损失函数、损失函数与梯度下降
  18. 有个名叫史太滩的珠宝商带着块鸡蛋大的宝石乘船过江
  19. 魔兽争霸war3心得体会(三):UD内战
  20. java求1000以内所有完数

热门文章

  1. Redux入门教程(快速上手)_day_01
  2. html5 css练习 定位布局
  3. JAVA语言基础-面向对象(方法重写概述及其应用)
  4. 李洪强iOS经典面试题30-一个区分度很大的面试题
  5. PHP_框架储备资料
  6. HDU 1754 I Hate It 线段树RMQ
  7. .NET Framework第一二课(7/26、27)
  8. linux忘记root密码及时间设定
  9. 高兴与愉快的心情,难以言语。
  10. 7.UNIX 环境高级编程--进程环境