19. 镜像二叉树(C++版本)
使用二叉树的相关定义及函数在:二叉树最小结构(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++版本)相关推荐
- [剑指offer]面试题19:二叉树的镜像
面试题19:二叉树的镜像 题目:请完成一个函数,输入一个二叉树,该函数输出它的镜像. 二叉树结点的定义如下: struct BinaryTreeNode {int value;BinaryTreeNo ...
- 【递归】剑指offer——面试题19:二叉树的镜像
剑指offer--面试题19:二叉树的镜像 Solution1: 递归解法,牢记! 根结点为空的情况容易漏,注意! /* struct TreeNode {int val;struct TreeNod ...
- (剑指Offer)面试题19:二叉树的镜像
题目: 操作给定的二叉树,将其变换为源二叉树的镜像. 二叉树的定义如下: struct TreeNode{int val;TreeNode* left;TreeNode* right; }; 输入描述 ...
- 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存储库并运行相关命令即可完成 ...
- 面试题19:二叉树镜像
递归方法非常简单: 1 void MirrorRecursively(BinaryTreeNode *pNode) 2 { 3 if((pNode == NULL) || (pNode->m_p ...
- Windows11-10原版iso镜像仓库,版本长期更新维护
- 前文 - 欢迎来到Windows11/10-iso仓库,相信这里有你寻找的Win11/10系统iso镜像.仓库是从预览版本win10 21H2-19044.1147,正式版win10 21H1-1 ...
- pip 指定镜像源 指定版本 批量安装
要用 pip 安装指定版本的 Python 包,只需通过 == 操作符 指定 例如:pip install pycrypto==2.6.1 将安装pycrypto2.6.1 版本. 要使用pip 批量 ...
- 清华镜像源软件版本的确定(kafka安装)
今天想学习一下 kafka,打算在虚拟机安装,命令如下: wget http://apache.fayea.com/kafka/1.1.0/kafka_2.12-1.1.0.tgz 却发现找不到这个版 ...
- NodeJS插件验证:Jenkins官方Alpine镜像之LTS版本
在前面的文章中我们验证了Alpine版本的Linux发行版和NodeJS安装包不兼容的情况,并给出了解决的方法.而Jenkins本身也提供Alpine版本的镜像,这篇文章来确认一下目前最新的Alpin ...
- LeetCode101——对称二叉树——c++版本实现
题面来啦~ 给定一个二叉树,检查它是否是镜像对称的. 例如,二叉树 [1,2,2,3,4,4,3] 是对称的. 1/ \2 2/ \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3, ...
最新文章
- 反击CobaltStrike
- 【Python基础】Pandas笔记---概述与数据结构
- 使用HTML5 details,summary实现,展开,下拉,树的效果
- memcached全面剖析 –3.memcached的删除机制和发展方向
- ubuntu18虚拟机添加网卡后,不自动启用dhcp
- JAVA Web学习篇--Servlet
- swiper4.0(移动端)轮播图 - 案例篇
- OpenCV计算机视觉实战(Python版)_003阈值与平滑处理
- 基于HTML5的贪吃蛇游戏的设计与实现
- 性能提升160%,为全球提供顶级算力:阿里云发布第三代神龙云服务器
- avr单片机c语言教程,十天学会AVR单片机和C语言视频教程
- 电商后台之【商品管理系统】
- 无人机巡检系统设想路线
- 彩色数字图像处理基础
- 成年人社交中的10个潜规则
- 文本prompting综述
- CS231n学习笔记-损失函数、损失函数与梯度下降
- 有个名叫史太滩的珠宝商带着块鸡蛋大的宝石乘船过江
- 魔兽争霸war3心得体会(三):UD内战
- java求1000以内所有完数