首页 > 其他分享 >剑指 Offer 33. 二叉搜索树的后序遍历序列(中等)

剑指 Offer 33. 二叉搜索树的后序遍历序列(中等)

时间:2023-08-21 20:44:41浏览次数:46  
标签:遍历 return Offer 33 traversal int 二叉 postorder

题目:

结合以下图理解该方法

class Solution {      //本题要点:二叉搜索树性质:根节点一定大于所有左子树,一定小于所有右子树 
public:
    bool traversal(vector<int>& postorder, int l, int r){      //l和r分别为当前树的左右边界
        if(l>=r) return true;
        int i=l, j=0;      //i用于比较大小并且确定左右子树边界
        while(postorder[i]<postorder[r]) i++;      //现在遍历左子树
        j=i;      //j用于保存左右子树的边界
        while(postorder[i]>postorder[r]) i++;      //现在遍历右子树
        return i==r&&traversal(postorder, l, j-1)&&traversal(postorder, j, r-1);      //i最终会指向右边界,左右递归均需要为真
    }
    bool verifyPostorder(vector<int>& postorder) {
        return traversal(postorder, 0, postorder.size()-1);
    }
};

作者:疯子
链接:https://leetcode.cn/problems/er-cha-sou-suo-shu-de-hou-xu-bian-li-xu-lie-lcof/solutions/1058657/2chong-jie-fa-qing-xi-luo-ji-miao-dong-o-23nq/
来源:力扣(LeetCode)

标签:遍历,return,Offer,33,traversal,int,二叉,postorder
From: https://www.cnblogs.com/fly-smart/p/17647048.html

相关文章

  • Android开发如何斩获高薪offer?给大家几点面试建议
    前言又到了每年的求职季,Android开发工程师在找工作过程对于简历设计和面试技巧通常会有一定的欠缺,而这往往是求职过程是否顺利的决定性因素。因此,掌握一定的面试技巧对于找互联网技术岗位的工作帮助非常大。本篇文章给大家分享一波面试必备技巧,全文是通过在阿里的面试官的交流整理......
  • SpringBoot复习:(33)WebMvcAutoconfiguration内部静态类WebMvcAutoConfigurationAdapter
    WebMvcAutoconfiguration内部静态类WebMvcAutoConfigurationAdapter实现了WebMvcConfigurer接口,重写了一些方法,也就是默认对SpringMvc进行了一些配置:该静态类上有个**@Import**注解:@Import(EnableWebMvcConfiguration.class)它的父类DelegatingWebMvcConfiguration,通过注入......
  • 代码随想录算法训练营第二十一天| 530.二叉搜索树的最小绝对差 501.二叉搜索树中的
     530.二叉搜索树的最小绝对差   卡哥建议:需要领悟一下二叉树遍历上双指针操作,优先掌握递归   题目链接/文章讲解:https://programmercarl.com/0530.%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E7%9A%84%E6%9C%80%E5%B0%8F%E7%BB%9D%E5%AF%B9%E5%B7%AE.html ......
  • 代码随想录算法训练营第二十天| 654.最大二叉树 617.合并二叉树 700.二叉搜索树
      654.最大二叉树    卡哥建议:又是构造二叉树,昨天大家刚刚做完 中序后序确定二叉树,今天做这个 应该会容易一些, 先看视频,好好体会一下 为什么构造二叉树都是 前序遍历    题目链接/文章讲解:https://programmercarl.com/0654.%E6%9C%80%E5%A4%A7%E4%BA%8C%E5......
  • 杭电ACM HDU 3346 Lucky Number
    LuckyNumberTimeLimit:2000/1000MS(Java/Others)   MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):1523   AcceptedSubmission(s):800ProblemDescriptionToChinesepeople,8isaluckynumber.Nowyourtaskistojudgeifanu......
  • 杭电ACM HDU 3351 Seinfeld
    SeinfeldTimeLimit:2000/1000MS(Java/Others)   MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):1071   AcceptedSubmission(s):540ProblemDescriptionI’moutofstories.ForyearsI’vebeenwritingstories,somerathersilly,......
  • Leetcode 59. 螺旋矩阵 II && 剑指 Offer 29. 顺时针打印矩阵
    这两个题非常相似,但是前者较为简单,后者较难。由于前者访问的矩阵是方阵,因此可以通过迭代去做(因为方阵每次迭代,长和宽缩水的大小是一样的,但是矩阵不可以,因为矩阵最后一次迭代,长和宽的缩水不一定一样)classSolution{public:vector<vector<int>>generateMatrix(intn){......
  • 【二叉树前沿篇】树
    1树的概念树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。树有一个特殊的结点,称为根结点,根节点没有前驱结点。除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、……......
  • 【剑指Offer】10、矩形覆盖
    【剑指Offer】10、矩形覆盖题目描述:我们可以用2X1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2X1的小矩形无重叠地覆盖一个2Xn的大矩形,总共有多少种方法?解题思路:我们可以以2X8的矩形为例。先把2X8的覆盖方法记为f(8),用1X2的小矩形去覆盖时,有两种选择:横着放或......
  • 【剑指Offer】9、变态跳台阶
    【剑指Offer】9、变态跳台阶题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。解题思路:当只有一级台阶时,f(1)=1;当有两级台阶时,f(2)=f(2-1)+f(2-2);一般情况下,当有n级台阶时,f(n)=f(n-1)+f(n-2)+···+f(n-n)......