剑指offer面试题[59]-对称的二叉树
题目描述
/*
struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;TreeNode(int x) :val(x), left(NULL), right(NULL) {}
};
*/
class Solution {
public:bool isSymmetrical(TreeNode* pRoot){if(pRoot==NULL)return true;TreeNode* p1=pRoot;TreeNode* p2=pRoot;PreSymmetrical(p1); //标准的前序遍历,先遍历左子树,再根结点,最后遍历右子树DefineSymmetrical(p2); //自定义的对称前序遍历,先遍历右子树,再根结点,最后遍历for(int i=0;i<vec1.size();i++) //左子树注意一些特殊情况,比如所有的元素都是相同的,两种{ //遍历结果可能是一样的,事实上是非对阵的(比如奇数个相同if(vec1[i]!=vec2[i]) //的值明显不是对阵的,但两种遍历结果相同),因此我们将所return false; //有的结点的左右结点为空时记为NULL。}return true;}void PreSymmetrical(TreeNode*p1){if(p1==NULL){vec1.push_back(0); return;}vec1.push_back(p1->val);PreSymmetrical(p1->left);PreSymmetrical(p1->right);}void DefineSymmetrical(TreeNode*p2){if(p2==NULL){vec2.push_back(0); return;}vec2.push_back(p2->val);DefineSymmetrical(p2->right);DefineSymmetrical(p2->left);}
private:vector<int> vec1,vec2; //vec1和vec2分别用来存储前序遍历和自定义对称前序遍历的结果
};
剑指offer面试题[59]-对称的二叉树相关推荐
- 剑指offer面试题28. 对称的二叉树(递归)
题目描述 请实现一个函数,用来判断一棵二叉树是不是对称的.如果一棵二叉树和它的镜像一样,那么它是对称的. 思路 详见链接 代码 class Solution:def isSymmetric(self, ...
- 剑指offer——面试题59:对称的二叉树
剑指offer--面试题59:对称的二叉树 Solution1: 书上的思路就挺好的 书中的思路:针对二叉树的前序遍历,定义一种遍历算法,先遍历右子结点再遍历左子结点,并考虑进NULL的情况 /* s ...
- 【重点】剑指offer——面试题62:序列化二叉树
剑指offer--面试题62:序列化二叉树 Solution1: 参考网址:https://www.nowcoder.com/profile/6475323/codeBookDetail?submis ...
- 剑指offer——面试题60:把二叉树打印成多行
剑指offer--面试题60:把二叉树打印成多行 Solution1: 20180911重做.经典题目.牢记做法! /* struct TreeNode {int val;struct TreeNod ...
- 剑指offer——面试题6:重建二叉树
剑指offer--面试题6:重建二叉树 一个小知识点:已知二叉树的中序遍历和前序遍历(或后序遍历)结果则可以确定该二叉树:但是通过二叉树的前序遍历和后序遍历结果无法确定该二叉树!!! Solution ...
- C++版-剑指offer 面试题6:重建二叉树(Leetcode105. Construct Binary Tree from Preorder and Inorder Traversal) 解题报告
剑指offer 重建二叉树 提交网址: http://www.nowcoder.com/practice/8a19cbe657394eeaac2f6ea9b0f6fcf6?tpId=13&t ...
- 剑指offer——面试题7:重建二叉树
1 // 面试题7:重建二叉树 2 // 题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输 3 // 入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1, ...
- 剑指Offer - 面试题59 - II. 队列的最大值(deque模拟单调栈)
1. 题目 请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value.push_back 和 pop_front 的时间复杂度都是O(1). 若队列为空,pop_f ...
- 剑指offer 面试题59 - II. 队列的最大值
请定义一个队列并实现函数 max_value 得到队列里的最大值,要求函数max_value.push_back 和 pop_front 的均摊时间复杂度都是O(1). 若队列为空,pop_front ...
最新文章
- Entity Framework Core 2.0 使用入门
- 第一章 java nio三大组件与使用姿势
- 剑指 Offer 10- I. 斐波那契数列 (从重叠子问题到备忘录到dp数组迭代解法)
- 将阿拉伯数字转换成中文大写的好算法
- 依赖反转原理,IoC容器和依赖注入:第1部分
- python灰度图生成g代码_Python打造一个在线G代码生成器
- ACL'22 | 基于强化学习的实体对齐
- 高等数学复习笔记(二)- 一元函数微分学的概念、计算以及几何应用
- 你能卖什么,决定了你的收入落在什么档次
- velocity定制模板文件
- 希捷2T硬盘ST2000M001分区读不到变为RAW修复记
- 土地利用分类数据类型和下载
- 手游渠道出现三大变量
- HP-UX Samba服务配置手册
- double scanf输入时用%lf而printf用%f或%lf原理
- 【洛谷 P6151 [集训队作业2019] 青春猪头少年不会梦到兔女郎学姐】【容斥原理+生成函数】
- 【C/C++】PDB文件:每个开发者都必须知道
- Knights of the Round Table
- 快递鸟物流查询接口调用
- 在windows中批量修改文件名
热门文章
- 一道数学题引发的思考
- 屏蔽×××S 2008报表导出格式
- 1356. 根据数字二进制下 1 的数目排序
- 7-2 错误处理概念
- springboot日志可视化_Springboot面试问题集锦
- 我用Python爬取1000封情书助力室友表白班花,却反转再反转...原来这就是班花的终极秘密!
- 计算机成原理第2版,清华大学出版社-图书详情-《计算机组成原理(第2版)》...
- httpget请求设置长度_Citrix ADCHTTP请求Smuggling详解
- 3P新产品开发管理实务
- laravel 数据填充