判断是否为二叉树的后续遍历
来源:互联网 发布:战地之王刷枪软件 编辑:程序博客网 时间:2024/05/22 05:28
题目要求:
判断整数序列是不是二元查找树的后续遍历结果。
输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。
如果返回true,否则返回false.
因此返回true.如果输入7,4,6,5,没有那棵树的后序遍历的结果是这个序列,因此返回false.
解析:
这是二叉查找树树后序遍历重建问题。在这个问题中,最后一个元素是根。例子中二叉查找树的跟是8.So we can split the array by the root.
代码如下:
int is_post_traverse(int* arr, int len){
int *head, *pos, *p;
if (arr == NULL || len <= 0)
return 0;
if (len == 1)
return 1;
head = arr + len - 1;
p = arr;
while (*p < *head)
p++;
pos = p;
while (p < head)
{
if (*p < *head)
return 0;
p++;
}
if (!is_post_traverse(arr, pos - arr))
return 0;
return is_post_traverse(pos, head - pos);
}
0 0
- 判断是否为二叉树的后续遍历
- 判断二叉树的后续遍历序列
- 判断一个数组是否为二叉排序树的后续遍历
- 剑指offer24判断某一序列是否是某一搜索二叉树的后续遍历结果
- 判断序列是否是二叉查找树的后续遍历结果
- 二叉树先序遍历,中序遍历,后续遍历 非递归版本+二叉树转换为string保存+二叉树的层次遍历+平衡二叉树判断
- 判断是否为二叉搜索树的后序遍历
- 判断二叉搜索树的后续遍历序列
- 二叉树层次遍历的应用--判断一颗二叉树是否为规则二叉树
- 二叉树的后续遍历
- 剑指offer:二叉搜索树的后序遍历序列(判断一个数组是否是二叉搜索树的后续遍历序列)
- 算法--判断一个数字序列是否为二叉排序树的后续遍历
- 判断二叉搜索树是否为后序遍历序列
- 层序遍历判断是否为完美二叉树
- 判断序列是否为二叉树后序遍历
- 二叉树后续遍历
- 后续遍历二叉树
- 判断给定的数组是否为二叉搜索树的后序遍历序列
- samck中ProviderManager的学习
- House Robber - LeetCode 198
- zoj3785 What day is that day?
- 第四站 卧龙谷
- 从零到在虚拟机中搭建hadoop伪分布平台
- 判断是否为二叉树的后续遍历
- 第七题(3)
- smack中ProviderManager的学习
- SQLServer 递归查询
- pthread 基础编程
- Excel Sheet Column Number - LeetCode 171
- C#学习(1)
- cookielib和urllib2模块相结合模拟网站登录
- 我的第一篇博客。