剑指offer-算法题练习:part20 二叉树的镜像
来源:互联网 发布:腾讯文件管理器源码 编辑:程序博客网 时间:2024/06/01 08:49
剑指offer-算法题练习:part20 二叉树的镜像
题目描述
操作给定的二叉树,将其变换为源二叉树的镜像。
输入描述:
二叉树的镜像定义:源二叉树
8
/ \
6 10
/ \ / \
5 7 9 11
镜像二叉树
8
/ \
10 6
/ \ / \
11 9 7 5
<解析>
code1——递归法
/*struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;TreeNode(int x) :val(x), left(NULL), right(NULL) {}};*/class Solution {public: void Mirror(TreeNode *pRoot) { TreeNode * p=NULL; if(pRoot!=NULL) { p = pRoot->left; pRoot->left = pRoot->right; pRoot->right = p; if(pRoot->left != NULL) Mirror(pRoot->left); if(pRoot->right!= NULL) Mirror(pRoot->right); } }};
code2——非递归
/*struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;TreeNode(int x) :val(x), left(NULL), right(NULL) {}};*/class Solution {public: void Mirror(TreeNode *pRoot) { if(pRoot==NULL) return ; TreeNode * p; TreeNode* tmp; stack<TreeNode*> stk; stk.push(pRoot); while(!stk.empty()){ p = stk.top(); stk.pop(); if(p->left != NULL || p->right != NULL){ tmp = p->left; p->left = p->right; p->right = tmp; } if(p->left!=NULL) stk.push(p->left); if(p->right!=NULL) stk.push(p->right); } }};
0 0
- 剑指offer-算法题练习:part20 二叉树的镜像
- 【剑指offer】二叉树的镜像
- [剑指Offer]二叉树的镜像
- 剑指offer--二叉树的镜像
- 剑指Offer-二叉树的镜像
- 《剑指offer》二叉树的镜像
- 剑指 offer:二叉树的镜像
- 【剑指offer】二叉树的镜像
- 剑指offer 二叉树的镜像
- [剑指offer]二叉树的镜像
- 《剑指offer》-二叉树的镜像
- 剑指Offer:二叉树的镜像
- 剑指offer|二叉树的镜像
- 《剑指offer》二叉树的镜像
- 剑指Offer:二叉树的镜像
- 【剑指offer】二叉树的镜像
- 剑指Offer:二叉树的镜像
- 剑指offer-二叉树的镜像
- 剑指offer:n个骰子的点数(java)
- iOS录音编程简介
- laravel ajax时间与关键字搜索、即点即改、批量删除
- linux之sed用法
- 面试心理测试题
- 剑指offer-算法题练习:part20 二叉树的镜像
- 第三章小结
- 【网络知识】——交换机上不了网问题
- CSS基础知识
- Python 的defaultdict用法
- 使用Android Studio导出JavaDoc时中文乱码问题解决
- 使用线程的一个例子程序
- css+div 图片排列布局
- Codeforces Round #362 (Div. 2)(A~D))