24. 二叉搜索树的后续遍历序列(c++版本)
使用二叉树的相关定义及函数在:二叉树最小结构(C++版本)
注意点:
假设左子树小于等于根节点,右子树大于根节点。
实现代码:
bool IsPostOrder(int* pData, int begin, int end)
{if (nullptr == pData) return false;if (begin > end) return false;if (begin == end) return true;// 只有一个节点// 找出左右子树的分解点,如果左右子树都有,// 区间分别为[begin, lassLessIdx - 1], [lassLessIdx, end - 1]// pData[end]根节点int lastLessIdx = 0;for (lastLessIdx = begin; lastLessIdx < end; ++lastLessIdx ){if (pData[idx] > pData[end]) break;}// 判断右子树是否都大于根节点for (int idx = lastLessIdx; idx < end; ++idx){if (pData[idx] <= pData[end]) return false;}bool leftTreeResult = true;bool rightTreeResult = true;// 如果有右子树 (lastLessIdx == end无右子树) 如果有左子树 (0 == lastLessIdx无左子树)if (lastLessIdx > begin) leftTreeResult = IsPostOrder(pData, begin, lastLessIdx - 1);if (lastLessIdx < end) rightTreeResult = IsPostOrder(pData, lastLessIdx, end - 1);return leftTreeResult && rightTreeResult;
}
24. 二叉搜索树的后续遍历序列(c++版本)相关推荐
- 【剑指offer-Java版】24二叉搜索树后序遍历序列
二叉搜索树的后续遍历序列:既然是二叉搜索树,那么就满足左子树结点都大于或者小于根节点右子树都小于或大于根结点 根据搜索树的这种特点,将给定的树划分为左子树或者右子树,递归的处理左右子树 public ...
- 剑指offer之 二叉搜索树的后续遍历序列
题目描述: 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. public class Solution {p ...
- 23 二叉搜索树的后续遍历数列
题目:二叉搜索树的后续遍历数列 要求:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 左图的正确后序遍历序列 ...
- [Leetcode][第99题][JAVA][恢复二叉搜索树][中序遍历]
[问题描述][困难] [解答思路] 1. 显示中序遍历 时间复杂度:O(N) 空间复杂度:O(N) class Solution {public void recoverTree(TreeNode r ...
- 面试题24 二叉搜索树的后序遍历序列
题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果.如果是则输出Yes,否则输出No.假设输入的数组的任意两个数字都互不相同. 1 class Solution { 2 publ ...
- 74. Leetcode 501. 二叉搜索树中的众数 (二叉搜索树-中序遍历类)
给你一个含重复值的二叉搜索树(BST)的根节点 root ,找出并返回 BST 中的所有 众数(即,出现频率最高的元素).如果树中有不止一个众数,可以按 任意顺序 返回.假定 BST 满足如下定义:结 ...
- 73. Leetcode 230. 二叉搜索树中第K小的元素 (二叉搜索树-中序遍历类)
给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数).示例 1:输入:root = [3,1,4,null,2], k = 1 输出 ...
- 72. Leetcode 99. 恢复二叉搜索树 (二叉搜索树-中序遍历类)
给你二叉搜索树的根节点 root ,该树中的 恰好 两个节点的值被错误地交换.请在不改变其结构的情况下,恢复这棵树 .示例 1:输入:root = [1,3,null,null,2] 输出:[3,1, ...
- 24. 二叉搜索树的最近公共祖先
题目链接: 235. 二叉搜索树的最近公共祖先 大概思路: 题目要求: 给定一颗二叉搜索树,两个确定值q,p,要求q,p的最近公共祖先. 思路: 利用搜索树的特性,当q,p的值均小于遍历的节点值的时候 ...
- HDOJ-3999(二叉搜索树+先序遍历)
The order of a Tree 题解:先建立一颗二叉搜索树,然后先序遍历 示例图 import java.util.Scanner;public class Main3 {public sta ...
最新文章
- 一个简单遮罩弹窗效果
- jQuery.validate使用必备
- λ-矩阵(初等因子)
- 被LTRIM(RTRIM())害死了,差点
- CTF-MISC杂项题2
- 2020-2021家居行业年度盘点与趋势洞察
- 监督学习和无监督学习_一篇文章区分监督学习、无监督学习和强化学习
- UNIX 环境高级编程(七)—— 进程标识
- 输入两个整数,求他们相除的余数
- photoshop cs6 界面字体太小解决方法
- 具体数学第一章习题题解(8,9,10,11)
- java pdf 中文字体_iText生成pdf中文字体解决方案
- FPGA数字时钟计数器
- 报错Found existing installation: tensorflow 1.2.1
- 【毕设教程】OLED屏幕介绍与使用
- Linux第7章Gdk及Cairo基础,Linux第7章Gdk及Cairo基础.ppt
- [CSS揭秘]菱形图片
- 计算机中最小值的公式,用数组公式在数值列中查找大于指定值的最小值
- POJ3254 状压DP模板
- 7-1 哈夫曼编码(实验) 最全代码解析