剑指Offer-Java-二叉搜索树的后序遍历序列

简介: 剑指Offer-Java-二叉搜索树的后序遍历序列

二叉搜索树的后序遍历序列


题目:


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


代码:

package com.sjsq.test;
/**
 * @author shuijianshiqing
 * @date 2020/5/25 21:26
 */
/**
 * 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历
 * 的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意
 * 两个数字都互不相同。
 */
public class Solution {
    public boolean VerifySquenceOfBST(int [] sequence) {
        // 为空时为true
        if(sequence == null || sequence.length == 0){
            return false;
        }
        return helqVerifty(sequence,0,sequence.length-1);
    }
    public boolean helqVerifty(int seq[],int start,int end){
        if(start >= end){
            return true;
        }
        int key = seq[end];
        int i;
        // 找到左右子树的分界点
        for(i = start; i < end; i++){
            if(seq[i] > key){
                break;
            }
        }
        // 判断从右子树有有没有比key小的,如果有则返回false
        for(int j = i; j < end; j++){
            if(seq[j] < key){
                return false;
            }
        }
        // 判断左子树和右子树是否符合
        return helqVerifty(seq,start,i-1) && helqVerifty(seq,i,end-1);
    }
}
相关文章
|
4月前
|
存储 算法 Java
LeetCode经典算法题:二叉树遍历(递归遍历+迭代遍历+层序遍历)以及线索二叉树java详解
LeetCode经典算法题:二叉树遍历(递归遍历+迭代遍历+层序遍历)以及线索二叉树java详解
83 0
|
7月前
|
Python Java 算法
Java每日一练(20230402) 有效括号、二叉树前序遍历、全排列
Java每日一练(20230402) 有效括号、二叉树前序遍历、全排列
47 0
Java每日一练(20230402) 有效括号、二叉树前序遍历、全排列
|
7月前
|
Python Java Go
Java每日一练(20230419) 二叉树的最大深度、层序遍历、最短回文串
Java每日一练(20230419) 二叉树的最大深度、层序遍历、最短回文串
78 0
Java每日一练(20230419) 二叉树的最大深度、层序遍历、最短回文串
|
7月前
|
存储 算法 Java
java树和图相关的算法:二叉树遍历、深度优先搜索、广度优先搜索等
树和图相关的算法:二叉树遍历、深度优先搜索、广度优先搜索等
77 0
|
Java
Java二叉树前中后序的非递归实现
Java二叉树前中后序的非递归实现
75 0
二叉树的最近公共祖先(剑指offer 68 - II)Java深度优先遍历
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。
二叉树的最近公共祖先(剑指offer 68 - II)Java深度优先遍历
|
算法 Java
序列化二叉树(剑指offer37 力扣297)Java层序遍历
你需要设计一个算法来实现二叉树的序列化与反序列化。这里不限定你的序列 / 反序列化算法执行逻辑,你只需要保证一个二叉树可以被序列化为一个字符串并且将这个字符串反序列化为原始的树结构。
119 0
序列化二叉树(剑指offer37 力扣297)Java层序遍历
二叉树中和为某一值的路径(剑指offer34 力扣113)Java深度优先遍历
给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。 叶子节点 是指没有子节点的节点。
二叉树中和为某一值的路径(剑指offer34 力扣113)Java深度优先遍历
树的子结构(剑指offer 26)Java先序遍历+子结构判断
输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构) B是A的子结构, 即 A中有出现和B相同的结构和节点值。
108 0
树的子结构(剑指offer 26)Java先序遍历+子结构判断
|
Java
力扣106. 从中序与后序遍历序列构造二叉树Java
力扣106. 从中序与后序遍历序列构造二叉树Java
97 0
下一篇
DataWorks