10.8(98. 验证二叉搜索树 100. 相同的树)

2024-03-30 01:32

本文主要是介绍10.8(98. 验证二叉搜索树 100. 相同的树),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

98. 验证二叉搜索树

思路:

1、使用深度优先遍历的方式遍历所有的数据元素,放进vector的数组里面。
2、对数组进行排序看看是不是含有逆序对,如果有那么不正确,如果没有便是正确的。

效率:98.19%
程序代码:
class Solution {
public:bool isValidBST(TreeNode* root) {vector<int> result;Traverse(result,root);return Bubble(result);}void Traverse(vector<int> &result,TreeNode *root) {if (root == NULL)return;else {Traverse(result, root->left);result.push_back(root->val);Traverse(result, root->right);}}bool Bubble(vector<int> &result) {int n = result.size();for (int i = 0; i < n-1; i++) {if (result[i] > result[i+1])return false;}return true;}};
程序代码二:(参考答案)
class Solution {
public:bool isValidBST(TreeNode *root) {return isValidBST(root, LONG_MIN, LONG_MAX);}bool isValidBST(TreeNode *root, long mn, long mx) {if (!root) return true;if (root->val <= mn || root->val >= mx) return false;return isValidBST(root->left, mn, root->val) && isValidBST(root->right, root->val, mx);}
};

100. 相同的树

直接采用递归的方法。
效率:100%
程序代码:
class Solution {public:bool isSameTree(TreeNode* p, TreeNode* q) {if (p == NULL && q == NULL) return true;else if(p!=NULL&&q!=NULL)return p->val == q->val&&isSameTree(p->left, p->left) && isSameTree(p->right, p->right);else return false;}};
可能出现的错误:

有时候引入了这么一句话
#include之后却显示“未定义的标识符vector”。这是因为忘记了using namespace std;

这篇关于10.8(98. 验证二叉搜索树 100. 相同的树)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/860177

相关文章

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

opencv图像处理之指纹验证的实现

《opencv图像处理之指纹验证的实现》本文主要介绍了opencv图像处理之指纹验证的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、简介二、具体案例实现1. 图像显示函数2. 指纹验证函数3. 主函数4、运行结果三、总结一、

Python使用DeepSeek进行联网搜索功能详解

《Python使用DeepSeek进行联网搜索功能详解》Python作为一种非常流行的编程语言,结合DeepSeek这一高性能的深度学习工具包,可以方便地处理各种深度学习任务,本文将介绍一下如何使用P... 目录一、环境准备与依赖安装二、DeepSeek简介三、联网搜索与数据集准备四、实践示例:图像分类1.

Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)

《Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)》本文介绍了如何使用Python和Selenium结合ddddocr库实现图片验证码的识别和点击功能,感兴趣的朋友一起看... 目录1.获取图片2.目标识别3.背景坐标识别3.1 ddddocr3.2 打码平台4.坐标点击5.图

关于Spring @Bean 相同加载顺序不同结果不同的问题记录

《关于Spring@Bean相同加载顺序不同结果不同的问题记录》本文主要探讨了在Spring5.1.3.RELEASE版本下,当有两个全注解类定义相同类型的Bean时,由于加载顺序不同,最终生成的... 目录问题说明测试输出1测试输出2@Bean注解的BeanDefiChina编程nition加入时机总结问题说明

C#比较两个List集合内容是否相同的几种方法

《C#比较两个List集合内容是否相同的几种方法》本文详细介绍了在C#中比较两个List集合内容是否相同的方法,包括非自定义类和自定义类的元素比较,对于非自定义类,可以使用SequenceEqual、... 目录 一、非自定义类的元素比较1. 使用 SequenceEqual 方法(顺序和内容都相等)2.

C# ComboBox下拉框实现搜索方式

《C#ComboBox下拉框实现搜索方式》文章介绍了如何在加载窗口时实现一个功能,并在ComboBox下拉框中添加键盘事件以实现搜索功能,由于数据不方便公开,作者表示理解并希望得到大家的指教... 目录C# ComboBox下拉框实现搜索步骤一步骤二步骤三总结C# ComboBox下拉框实现搜索步骤一这

Spring Security基于数据库验证流程详解

Spring Security 校验流程图 相关解释说明(认真看哦) AbstractAuthenticationProcessingFilter 抽象类 /*** 调用 #requiresAuthentication(HttpServletRequest, HttpServletResponse) 决定是否需要进行验证操作。* 如果需要验证,则会调用 #attemptAuthentica

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。

hdu1240、hdu1253(三维搜索题)

1、从后往前输入,(x,y,z); 2、从下往上输入,(y , z, x); 3、从左往右输入,(z,x,y); hdu1240代码如下: #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#inc