首页 > 其他分享 >【数据结构】二叉树搜索树(二叉排序树)BST专题

【数据结构】二叉树搜索树(二叉排序树)BST专题

时间:2022-09-03 11:36:21浏览次数:92  
标签:return seq BST dfs 二叉 int 二叉树 root

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

class Solution {
public:
    vector<int> seq;
    bool verifySequenceOfBST(vector<int> sequence) {
        seq = sequence;
        return dfs(0, seq.size() - 1);
    }

    bool dfs(int l, int r)
    {
        if (l >= r) return true;
        int root = seq[r]; // 后序遍历的最后一个元素为根节点
        int k = l;
        while (k < r && seq[k] < root) k ++ ;
        for (int i = k; i < r; i ++ )
            if (seq[i] < root) 
                return false;

        return dfs(l, k - 1) && dfs(k, r - 1);
    }
};

标签:return,seq,BST,dfs,二叉,int,二叉树,root
From: https://www.cnblogs.com/Tshaxz/p/16652224.html

相关文章

  • python | 算法大神左神(左程云)算法课程 二叉树部分【中】
    1.二叉树宽度......
  • LeetCode617 合并二叉树
    LeetCode617合并二叉树#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):#self.val=val......
  • 124. 二叉树中的最大路径和
    124.二叉树中的最大路径和路径被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中至多出现一次。该路径至少包......
  • 二叉树路径问题
    问题分类1.自顶向下从某一结点(不一定是根节点),从上到下寻找路径,到某一节点(不一定是叶节点)结束二叉树的所有路径......
  • Problem P01. [算法课分治] 最大二叉树
    需要注意的:scanf()的返回值是EOF,输入结束通过指针指向左右子树的二叉树构建#include<iostream>#include<bits/stdc++.h>#include<cstdio>usingnamespacestd;......
  • 力扣 104. 二叉树的最大深度
    104.二叉树的最大深度给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给......
  • 力扣 110. 平衡二叉树 [基础+优化]
    110.平衡二叉树给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。......
  • 【数据结构】二叉树-二叉树类别
    满二叉树如果二叉树中除了叶子结点,每个结点的度都为2,则此二叉树称为满二叉树。 完全二叉树1.如果二叉树中除去最后一层节点为满二叉树,且最后一层的结点依次从左到右......
  • leetcode-998. 最大二叉树 II
    998.最大二叉树II图床:blogimg/刷题记录/leetcode/998/刷题代码汇总:https://www.cnblogs.com/geaming/p/16428234.html题目思路看到树就要想到递归。解法/***D......
  • 662. 二叉树最大宽度
    题目描述给你一棵二叉树的根节点root,返回树的最大宽度。树的最大宽度是所有层中最大的宽度。每一层的宽度被定义为该层最左和最右的非空节点(即,两个端点)之间......