求一颗二叉树的镜像
来源:互联网 发布:linux tail 显示行号 编辑:程序博客网 时间:2024/05/29 19:57
下面我给出一棵二叉树和他的镜像,所谓镜像就是一棵树就跟在镜子中显示一样,左右反转,示意图如下:
根节点的左右孩子互换,我们可递归实现:
void _MirrorTree(Node* root) { if (root == NULL)//树为空 return; if (root->_left == NULL&&root->_right == NULL)//只有一个根节点 return; Node* cur = root->_left; root->_left = root->_right; root->_right = cur; if (root->_left) _MirrorTree(root->_left); if (root->_right) _MirrorTree(root->_right); }
同样根据层序遍历的方法来完成,将根节点送入队列,交换队头元素左右孩子,队头元素出队列,若其左后孩子不为空,分别将左右孩子压入队列,依次,直到队列没有元素为止。用非递归实现:
void _MirrorTreeR(Node* root) { queue<Node*> q; q.push(root); while (q.size()) { Node* cur = q.front(); q.pop(); //交换左右孩子 Node* node = cur->_left; cur->_left = cur->_right; cur->_right = node; if (cur->_left) q.push(cur->_left); if (cur->_right) q.push(cur->_right); } }
阅读全文
0 0
- 求一颗二叉树的镜像
- 求一颗二叉树的镜像
- 求一颗二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- 二叉树的镜像
- split函数与strtok函数的实现
- 小鑫的城堡
- java enum的使用场景和使用方式
- LeetCode Longest Substring Without Repeating Characters C++
- this关键字
- 求一颗二叉树的镜像
- 2.1.8 —线性表—3Sum
- mysql-5.7.17-winx64压缩版的安装包下载和安装配置
- ubuntu下配置apache2+php+mysql By Assassin
- 2017杭电多校联赛第三场-RXD and math (hdu6063) 找规律快速幂
- 重学C语言之指针
- JavaScript正则表达式详细
- JS常见的面试题
- Java集合-----ConcurrentHashMap原理分析