首页 > 其他分享 >二叉搜索树的后序遍历序列

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

时间:2023-04-01 09:34:15浏览次数:37  
标签:遍历 return idx 后序 int root 二叉 true

class Solution {
public:
    bool dfs(vector<int> q,int l,int r)
    {
        if(l>=r)    return true;
        int root=q[r];
        int idx=l;
        for (; idx < r; idx ++ )
            if(q[idx]>root) break;
        int t=idx;
        while(t<r)
        {
            if(q[t]<root)   return false;
            t++;
        }
        return dfs(q,l,idx-1)&&dfs(q,idx,r-1);
    }
    bool verifySequenceOfBST(vector<int> q) {
        //已知root的值,通过比较大小,判断出左右子树所在的区间,如果左右子树都是二叉搜索树,返回true
        if(!q.size())  return true;
        return dfs(q,0,q.size()-1);
    }
};

标签:遍历,return,idx,后序,int,root,二叉,true
From: https://www.cnblogs.com/tangxibomb/p/17278085.html

相关文章

  • 09. 二叉搜索树
    一、什么是二叉搜索树  二叉搜索树(BinarySearchTree,BST)也称二叉排序树或二叉查找树。二叉搜索树是一颗特殊的二叉树,它可以为空,如果不为空,满足以下性质:非空左子树的所有键值小于其根节点的键值非空右子树的所有键值大于其根节点的键值左、右子树都是二叉搜索......
  • LeetCode 94 二叉树的中序遍历
    LeetCode|94.二叉树的中序遍历给定一个二叉树的根节点root,返回它的中序 遍历。示例1:输入:root=[1,null,2,3]输出:[1,3,2]示例2:输入:root=[]输出:[]示例3:输入:root=[1]输出:[1]提示:树中节点数目在范围[0,100]内-100<=Node.val<=100迭代实现:......
  • 广度优先遍历
    概述广度优先搜索的设计思想广度优先搜索以顶点u为起始点,依次访问和u有路径相通且路径长度为1、2、…的顶点。广度优先搜索的基本思想是访问顶点u,然后依次访问u的各个未被访问的邻接点v1、v2、…、vk,分别从v1、v2、…、vk出发依次访问它们未被访问的邻接点至图......
  • python 遍历指定文件夹指定类型文件
    importospath="d:\\python37"filetype=".pdf"#遍历包括子文件夹defget_filename(path,filetype):filetype1=filetype.upper()#print(filetype)name=[]final_name=[]forroot,dirs,filesinos.walk(path):foriinf......
  • 之子形打印二叉树
    classSolution{public:vector<vector<int>>res;voidbfs(TreeNode*root){queue<TreeNode*>q;q.push(root);intlevel=0;while(q.size()){intsize=q.size();......
  • 不分行从上往下打印二叉树
    classSolution{public:vector<int>res;voidbfs(TreeNode*root){queue<TreeNode*>q;q.push(root);while(q.size()){autop=q.front();q.pop();res.push_back(......
  • 经典图论遍历问题:传递信息
    小朋友A在和ta的小伙伴们玩传信息游戏,游戏规则如下:有n名玩家,所有玩家编号分别为0~n-1,其中小朋友A的编号为0每个玩家都有固定的若干个可传信息的其他玩家(也可能没有)。传信息的关系是单向的(比如A可以向B传信息,但B不能向A传信息)。每轮信息必须需要传递给另一......
  • 上下翻转二叉树
    给定一个二叉树的根节点root,按照如下的方式上下翻转二叉树,并返回新的根节点。1、原来的左子节点变成新的根节点2、原来的根节点变成新的右子节点3、原来的右子节点变成新的左子节点上面的步骤都是逐层进行的,题目数据保证每个右节点都有一个同级节点(共享同一个父节点的左......
  • JZ7 重建二叉树
     JZ7 重建二叉树方法一:递归做法前序的第一个结点就是根节点,而后在中序中将根节点的位置找出,根节点的左边是左子树,右边是右子树,而后再带入前序中分析,形成迭代。/***Definitionforbinarytree*structTreeNode{*intval;*TreeNode*left;*Tree......
  • LeetCode 559.二叉树的最大深度
    1.题目:给定一个N叉树,找到其最大深度。最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。N叉树输入按层序遍历序列化表示,每组子节点由空值分隔(请参见示例)。示例1:输入:root=[1,null,3,2,4,null,5,6]输出:3来源:力扣(LeetCode)链接:https://leetcode.cn/problems/maximum......