二叉搜索树的后序遍历序列
来源:互联网 发布:波士顿矩阵图怎么制作 编辑:程序博客网 时间:2024/06/07 06:16
题目
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
思路
后序遍历:左,右,根
二叉搜索树:左<根<右(题设任意两数字不同)
数组最后一项必为根节点,根节点前面的数组可分为左子树和右子树两部分
进行递归,注意递归结束条件
public class Solution { public boolean VerifySquenceOfBST(int [] sequence) { if(sequence==null||sequence.length==0) return false; int n = sequence.length; return VerifySquenceOfBST(sequence, n); } public boolean VerifySquenceOfBST(int [] sequence, int length) { int n = length; if(n<2) return true; int[] left = new int[n]; int[] right = new int[n]; int i=0,j=0,k=0; while(i<n-1){ if(sequence[i]>sequence[n-1]) break; left[j++] = sequence[i++]; } while (i<n-1){ if(sequence[i]<sequence[n-1]) return false; right[k++] = sequence[i++]; } return VerifySquenceOfBST(left, j)&&VerifySquenceOfBST(right, k); }}
同思路,另一种简单实现
根据数组下标确定左右子树,而不是再设两个数组,节省空间
public class Solution { public boolean VerifySquenceOfBST(int [] sequence) { if(sequence==null||sequence.length==0) return false; int n = sequence.length; return VerifySquenceOfBST(sequence, 0,n-1); } public boolean VerifySquenceOfBST(int [] sequence, int start, int end) { if(start>=end) return true; int left = start; while(start<end){ if(sequence[start]>sequence[end]) break; start++; } int right = start; while (start<end){ if(sequence[start]<sequence[end]) return false; start++; } return VerifySquenceOfBST(sequence, left, right-1)&&VerifySquenceOfBST(sequence, right, end-1); }
阅读全文
0 0
- 二叉树------二叉搜索树的后序遍历序列
- 【树5】二叉搜索树的后序遍历序列
- 题目10:二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 题目1367:二叉搜索树的后序遍历序列
- 1367:二叉搜索树的后序遍历序列 @jobdu
- 二叉搜索树的后序遍历序列
- Q24:二叉搜索树的后序遍历序列
- 剑指offer:二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 【剑指offer】二叉搜索树的后序遍历序列
- 题目1367:二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- java得到指定文件大小
- 二维数组中的查找【每日一题】
- PAC4J 初探
- DPDK之初识与环境搭建
- bzoj1149: [CTSC2007]风玲Mobiles
- 二叉搜索树的后序遍历序列
- Sudoku(DFS)
- 为什么推荐InnoDB引擎使用自增主键?
- git常用指令
- win10 通过composer安装yii2 方法
- 在linux下安装chrome 浏览器
- hdu 6035 Colorful Tree
- (十一)RemoteViews的使用解析
- 找不到元素'beans'的声明