【Leetcode刷题篇】leetcode98 判断一棵树是否为二叉搜索树
发布日期:2021-06-29 15:33:49 浏览次数:3 分类:技术文章

本文共 964 字,大约阅读时间需要 3 分钟。

题目:给定一个二叉树,判断其是否是一个有效的二叉搜索树。

假设一个二叉搜索树具有如下特征:

  • 节点的左子树只包含小于当前节点的数。
  • 节点的右子树只包含大于当前节点的数。
  • 所有左子树和右子树自身必须也是二叉搜索树。
/** * Definition for a binary tree node. * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */class Solution {
public boolean isValidBST(TreeNode root) {
// 中序遍历来解决该题目 if(root==null){
return true; } // 栈 Stack
stack = new Stack<>(); long pre = Long.MIN_VALUE; while(root!=null || !stack.isEmpty()){
if(root!=null){
stack.push(root); root = root.left; }else{
root = stack.pop(); // 处理数据 if(pre!=Long.MIN_VALUE && root.val<=pre){
return false; } pre = root.val; root = root.right; } } return true; }}

转载地址:https://codingchaozhang.blog.csdn.net/article/details/109729055 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【Leetcode刷题篇】判断一棵树是否为完全二叉树
下一篇:【Leetcode刷题篇】剑指offer55-平衡二叉树

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月14日 08时18分12秒