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

邮件设计网站四川铁科建设监理公司网站

邮件设计网站,四川铁科建设监理公司网站,网站建设需要下载哪些软件有哪些,一般营销方式三大步骤二叉搜索树的后序遍历序列 题目描述示例 题解递归单调栈 题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。 示例 参考以下这颗二叉搜索树&#…

二叉搜索树的后序遍历序列

  • 题目描述
    • 示例
  • 题解
    • 递归
    • 单调栈

题目描述

输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历结果。如果是则返回 true,否则返回 false。假设输入的数组的任意两个数字都互不相同。

示例

参考以下这颗二叉搜索树:

     5/ \2   6/ \1   3

输入: [1,6,3,2,5]
输出: false
示例 2:
输入: [1,3,2,6,5]
输出: true

题解

递归

后序遍历的最后一个元素为根节点,根据二叉搜索树的性质,根节点左边的元素都小于根节点,根节点右边的元素都大于根节点。因此,我们找到第一个大于根节点的位置 𝑖,那么 𝑖
右边的元素都应该大于根节点,否则返回 false。然后递归判断左右子树。

class Solution {
public:bool verifyPostorder(vector<int>& postorder) {function<bool(int, int)> dfs = [&](int l, int r) -> bool {if (l >= r) {return true;}int v = postorder[r];int i = l;while (i < r && postorder[i] < v) {++i;}for (int j = i; j < r; ++j) {if (postorder[j] < v) {return false;}}return dfs(l, i - 1) && dfs(i, r - 1);};return dfs(0, postorder.size() - 1);}
};

单调栈

后序遍历的顺序为“左、右、根”,如果从右往左遍历数组,那么顺序就变成“根、右、左”,根据二叉搜索树的性质,右子树所有节点值均大于根节点值。

因此,从右往左遍历数组,就是从根节点往右子树走,此时值逐渐变大,直到遇到一个递减的节点,此时的节点应该属于左子树节点。我们找到该节点的直接父节点,那么此后其它节点都应该小于该父节点,否则返回 false。然后继续遍历,直到遍历完整个数组。

此过程借助栈来实现,具体步骤如下:

  1. 首先初始化一个无穷大的父节点值 𝑚𝑥,然后初始化一个空栈。
  2. 接下来,从右往左遍历数组,对于每个遍历到的元素 𝑥
    • 如果 𝑥大于 𝑚𝑥,说明当前节点不满足二叉搜索树的性质,返回 false。
    • 否则,如果当前栈不为空,且栈顶元素大于 𝑥,说明当前节点为左子树节点,循环将栈顶元素出栈并赋值给 𝑚𝑥,直到栈为空或者栈顶元素小于等于 𝑥,然后将 𝑥入栈。
      遍历结束后,返回 true。
class Solution {
public:bool verifyPostorder(vector<int>& postorder) {stack<int> stk;int mx = 1 << 30;reverse(postorder.begin(), postorder.end());for (int& x : postorder) {if (x > mx) {return false;}while (!stk.empty() && stk.top() > x) {mx = stk.top();stk.pop();}stk.push(x);}return true;}
};
http://www.yayakq.cn/news/262434/

相关文章:

  • 网站项目分析怎么做 方法有哪些wordpress 写模版
  • 建设电商网站多少钱淄博网站建设-至信网络
  • 如何制作一个网站国内ui设计培训
  • 做户型图的网站wordpress微信扫码登录
  • 怎么建立一个网站广告虚拟电子商务网站建设前期规划方案
  • 建设网站费用入什么科目网站建设 全是乱码
  • 完整网站开发看什么书智慧展馆科技展厅
  • 云南网站建设产品介绍网站小视频怎么做代理
  • 别人恶意点击我们竞价网站个人网站做企业网站
  • 微信公众号文章里好看的图片在哪个网站做路由器映射做网站稳定吗
  • 用fullpage做的网站台州h5建站
  • 直接做网站的软件免费wordpress博客主题
  • 电子邮箱网站注册方案计划网站
  • 大连网站设计策划六安网约车资格证在哪里办
  • 临沂专业网站制作公司免费下载的视频网站
  • 做一个网站需要哪些成都响应式网站建设
  • 关于建设企业网站的请示百度广告官网
  • 明水县网站建设网站建设 常州
  • 西安网站建设外包上海网站建设优化价格
  • 网站翻页模板做网站 聊城
  • jsp网站开发详解 下载公司网站最新版
  • 无锡做网站seo的有品质的网站推广公司
  • 网站建设需要哪些岗位郑州电商运营培训
  • 网页制作与网站建设设计报告番禺石碁镇
  • 提交网站到百度微信小程序怎么清理掉
  • h5商城网站 源代码网站文化制度建设
  • 怎么介绍做网站技术dw2018网页制作步骤图文
  • 免费网站模板 下载jsp编写网站
  • 注册 网站开发 公司phpcms v9网站建设入门
  • 网站建设相关技术方案网站代运营服务公司