【树】判断二叉树是否镜像 + 将一个二叉树变成其镜像
2016-07-11 21:17
375 查看
判断一个二叉树是否是对称的。
很简单:空节点 叶子节点是true,只有一个孩子是false。
代码:
给定一个二叉树,将其变换成其镜像。
也很简单。。。
代码:
void Mirror(TreeNode *pRoot) {
if(pRoot == NULL)
return;
TreeNode *tmp = pRoot->left;
pRoot->left = pRoot->right;
pRoot->right = tmp;
Mirror(pRoot->left);
Mirror(pRoot->right);
}因为返回类型是void,所以不能用如下写法:(即tmp得不到值)
TreeNode* tmp = Mirror(pRoot->left);
pRoot->left = Mirror(pRoot->right);
pRoot->right = tmp;
很简单:空节点 叶子节点是true,只有一个孩子是false。
代码:
bool isSymmetricalCore(TreeNode* left, TreeNode* right) { if(left == NULL && right == NULL) return true; if(left == NULL || right == NULL) return false; return (left->val == right->val) && isSymmetricalCore(left->left, right->right) && isSymmetricalCore(left->right, right->left); } bool isSymmetrical(TreeNode* pRoot){ if(pRoot == NULL) return true; return isSymmetricalCore(pRoot->left, pRoot->right); }
给定一个二叉树,将其变换成其镜像。
也很简单。。。
代码:
void Mirror(TreeNode *pRoot) {
if(pRoot == NULL)
return;
TreeNode *tmp = pRoot->left;
pRoot->left = pRoot->right;
pRoot->right = tmp;
Mirror(pRoot->left);
Mirror(pRoot->right);
}因为返回类型是void,所以不能用如下写法:(即tmp得不到值)
TreeNode* tmp = Mirror(pRoot->left);
pRoot->left = Mirror(pRoot->right);
pRoot->right = tmp;
相关文章推荐
- Oracle Redo 以及 Archived日志简述
- python笔记---SMTP发送邮件
- spring4+mybatis3多数据源调用实例
- JSON及在前后端交互中的使用
- POJ - 3414 Pots(BFS)
- vb.net コマンドライン
- SPOOLing技术
- 局部加权回归、欠拟合、过拟合(Locally Weighted Linear Regression、Underfitting、Overfitting)
- Maven的pom.xml介绍
- JAVA生成Excel及其下载
- 深度学习(四十)caffe使用点滴记录
- 电话号码的字母组合
- JAVA多线程之Runnable和Thread比较
- debounce 防抖和 throttle 节流
- Django开发环境的搭建
- Java学习之Hessian通信基础
- mac下安装python pip、pyspider
- Android第三十一天
- PHP开发环境软件安装
- 第一天