Symmetric Tree
2015-06-19 16:49
330 查看
Description:
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).
For example, this binary tree is symmetric:
But the following is not:
Code:
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).
For example, this binary tree is symmetric:
1 / \ 2 2 / \ / \ 3 4 4 3
But the following is not:
1 / \ 2 2 \ \ 3 3
Code:
bool isSymmetric(TreeNode* root) { if ( root == NULL ) return true; stack<TreeNode *>preOrder; stack<TreeNode *>mirrorPreOrder; preOrder.push( root ); mirrorPreOrder.push( root ); while( !preOrder.empty() && !mirrorPreOrder.empty() ) { TreeNode * p = preOrder.top(); TreeNode * q = mirrorPreOrder.top(); preOrder.pop(); mirrorPreOrder.pop(); if ( p->val != q->val || (p->right ==NULL && q->left) || (p->right && q->left == NULL) || (p->left == NULL && q->right) || (p->left && q->right==NULL)) return false; else { if ( p->right && q->left ) { preOrder.push( p->right ); mirrorPreOrder.push( q->left ); } if (p->left && q->right ) { preOrder.push( p->left ); mirrorPreOrder.push( q->right ); } } } //注意检验是否两棵树都访问完毕 if ( preOrder.empty() && mirrorPreOrder.empty() ) return true; else return false; }
相关文章推荐
- Linux常用脚本
- hadoop+hbase+zookeeper 分布式集群搭建 + eclipse远程连接hdfs 完美运行
- 适配iOS9(ATS问题)
- uinavigationController pop 导致crash
- 实践:搭建基于Load Balancer的MySql Cluster
- Oracle性能优化之选择最有效率的表名顺序
- gettext模块实现Python国际化支持 推荐
- hadoop+hbase+zookeeper 分布式集群搭建完美运行
- 使用百度Web Uploader上传文件的简单用例
- sk_buff 剖析 (一)
- Quartz任务调度 2.2.1版本写法
- 我们一起学习WCF 第三篇头消息验证用户身份
- 针对dra7xx_evm_qspiboot_config 解析uboot mkconfig
- Java学习日记之分身有术:线程
- 外媒评黑莓推 Android 手机:自取其辱
- OO ALV 工具栏对于的功能码
- 苹果开发者账号(公司级)和邓白氏编码(D-U-N-S)申请记录(2015.06)
- opencv学习笔记10:机器学习
- MySQL配置文件mysql.ini参数详解
- php简单统计字符串单词数量的方法