剑指offer: 二叉搜索树的后序遍历序列

来源:互联网 发布:切尔西靴 知乎 编辑:程序博客网 时间:2024/06/07 06:59

题目:

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

思路:

1.二叉搜索树的后序遍历特点是前一段数小于最后一个数,后一段数大于最后一个数。

2.设置i=0从左到有遍历,判断是否能到达尾部

3.尾部n每次向右移动一个距离

代码:

class Solution{    public bool VerifySquenceOfBST(int[] sequence)    {        // write code here        if(sequence==null || sequence.Length == 0)            return false;        if(sequence.Length == 1)            return true;        int i = 0;        int n = sequence.Length -1;        while(n > 0)        {            while(sequence[i] < sequence[n])                i++;            while(sequence[i] > sequence[n])                i++;            if(i < n)                return false;            i = 0;            n--;        }        return true;     }}



0 0
原创粉丝点击