美文网首页
98. 验证二叉搜索树

98. 验证二叉搜索树

作者: bangbang2 | 来源:发表于2020-07-08 10:27 被阅读0次
    image.png

    解题思路

    主要思路:
    利用中序遍历,如果为二叉搜索树,中序遍历是顺序的
    double a= Double.NEGATIVE_INFINITY;//来记录中序遍历的前一个值,
    //如果小于a,那么说明不是二叉搜索树,初始值为负无穷大
    中序遍历时,为非递归,加一个stack

    代码

    /**
     * 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) {
        double a= Double.NEGATIVE_INFINITY;//来记录中序遍历的前一个值
        Stack<TreeNode> s=new Stack<TreeNode>();
        while(root!=null||!s.isEmpty()){
            while(root!=null){
                s.push(root);
                root=root.left;
            }
         root=s.pop();
         if(root.val<=a) return false;
         a=root.val;//更新a的值,记录前一个元素的值
         root=root.right;
        }
        
         return true;
        }
    }
    

    相关文章

      网友评论

          本文标题:98. 验证二叉搜索树

          本文链接:https://www.haomeiwen.com/subject/htpqcktx.html