博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面试题24:二叉排序树的后序遍历序列
阅读量:5169 次
发布时间:2019-06-13

本文共 860 字,大约阅读时间需要 2 分钟。

题目描述

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

题目分析

剑指Offer(纪念版)P140

代码实现

// BST:Binary Search Tree,二叉搜索树bool VerifySquenceOfBST(int sequence[], int length){    if(sequence == NULL || length <= 0)        return false;    int root = sequence[length - 1];    // 在二叉搜索树中左子树的结点小于根结点    int i = 0;    for(; i < length - 1; ++ i)    {        if(sequence[i] > root)            break;    }    // 在二叉搜索树中右子树的结点大于根结点    int j = i;    for(; j < length - 1; ++ j)    {        if(sequence[j] < root)            return false;    }    // 判断左子树是不是二叉搜索树    bool left = true;    if(i > 0)        left = VerifySquenceOfBST(sequence, i);    // 判断右子树是不是二叉搜索树    bool right = true;    if(i < length - 1)        right = VerifySquenceOfBST(sequence + i, length - i - 1);    return (left && right);}

  

转载于:https://www.cnblogs.com/xwz0528/p/4832341.html

你可能感兴趣的文章
《计算机组成原理》第6章:总线
查看>>
Nginx的反向代理的配置
查看>>
JAVA之单例模式
查看>>
关于String str =new String("abc")和 String str = "abc"的比较
查看>>
Android软件架构及子系统介绍
查看>>
《DSP using MATLAB》示例 Example 6.14、6.15
查看>>
Java命名规范
查看>>
小学生算术
查看>>
BZOJ2823: [AHOI2012]信号塔
查看>>
工厂方法模式
查看>>
Linux下安装git
查看>>
mysql查询前几条记录
查看>>
自定义标签
查看>>
java二分法查找实现代码
查看>>
体系编程、SOC编程那些事儿
查看>>
mysql索引的艺术
查看>>
IBM RSA 的语言设置
查看>>
《http权威指南》阅读笔记(二)
查看>>
faster r-cnn cudnn版本不兼容问题
查看>>
[置顶] ListBox控件的数据绑定
查看>>