本文共 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; } // 栈 Stackstack = 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; }}
转载地址:http://azwdf.baihongyu.com/