当前位置: 首页 > wzjs >正文

做网站做生意济南网站建设 泉诺

做网站做生意,济南网站建设 泉诺,官方网站下载钉钉,织梦网站模板安装教程这道题直接用最笨的办法来做的&#xff0c;用递归来做&#xff0c;我们定义一个全局变量vector<int> element&#xff0c;然后使用中序遍历&#xff0c;每当碰到一个非空节点就将其加入到向量中&#xff0c;这样依赖当向量中的元素小于k时&#xff0c;就返回0&#xff0c…


这道题直接用最笨的办法来做的,用递归来做,我们定义一个全局变量vector<int> element,然后使用中序遍历,每当碰到一个非空节点就将其加入到向量中,这样依赖当向量中的元素小于k时,就返回0,否则返回element[k - 1],下面是对应的代码。

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:vector<int> element{};int kthSmallest(TreeNode* root, int k) {//中序遍历//遇到空节点返回0if(!root) return 0;//左kthSmallest(root -> left, k);//中element.emplace_back(root -> val);//右kthSmallest(root -> right, k);return element.size() >= k ? element[k - 1] : 0;}
};

看了下灵神的题解,他也是用中序遍历来做的,但是没有使用额外的vector,因为vector插入元素也是耗时的,上面的代码可以进一步优化。
由于原函数已经规定了必须要有返回值,所以我们可以自己额外定义一个没有返回值的函数,这里我们可以用lambda函数来实现。这个lambda函数主要实现递归中序遍历二叉搜索树,且可以捕捉到kthSmallest()函数的所有变量的引用,在这个lambda函数中,中间节点先将k值-1,再判断k是否减为0,若减为0则说明已经当前的节点就是所求节点,再用一个全局外部变量接收当前节点的值即可。在遍历结束后直接将这个全局外部变量返回即可。以下是优化过后的代码。

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:int result;int kthSmallest(TreeNode* root, int k) {auto dfs = [&] (this auto&& dfs, TreeNode* root) -> void{//递归终止条件if(!root || k == 0) return ;//左dfs(root -> left);//中k--;if(k == 0) result = root -> val; //找到节点,记录答案//右dfs(root -> right);};dfs(root);return result;}
};
http://www.dtcms.com/wzjs/583132.html

相关文章:

  • 个人网站设计目的徐州网站定制
  • 怎么形容网站风格物流软件开发工具
  • 2018年网站开发语言如何运营电商平台
  • 没有域名 有公网ip 建网站可以asp做网站计数器
  • 移动端网站怎么做的wordpress外贸网店主题
  • 网站index.php被修改成都网络科技公司排名
  • 网站 内页美工常用找素材网站
  • 佛山网站营销浏览器网站免费进入
  • 什么网站能让小孩做算术题网络培训机构排名前十
  • 网站制作作业域名类型
  • 旅游类网站策划建设_零投入开网店
  • 网站建设试题卷访问网页
  • 淄博专业网站建设价格上海排名seo公司
  • 做商城网站费用企业管理培训是做什么的
  • 网站制作设计正规公司曹县网站开发
  • 槐荫区网站建设wordpress文件浏览插件
  • 杭州做购物网站动漫网站做毕业设计简单吗
  • 广州品牌网站设计开发用自己的网站做淘客
  • 网站搜索怎么做的网站建设公司宣传
  • 网站建设网站优化动画制作软件flash
  • 淘宝客网站怎么做推广屏蔽wordpress头像
  • 怎么做qq可信任网站做甲方去哪个网站应聘
  • 行业网站建设费用八上数学优化设计答案
  • 双鸭山住房和城乡建设局网站网站该怎么找
  • 网站百度收录秒收方法wordpress 百度编辑器
  • 网站添加js广告位iis关闭网站
  • 做免费小说网站怎样赚钱内网门户网站建设方案
  • 档案门户网站建设方案网站备案 个人 单位
  • 手机网站建设推广软文wordpress配合七牛云
  • h5 php mysql网站开发东莞网页制作网站