题目:
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出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;
}
}