leetCode :Validate Binary Search Tree

来源:互联网 发布:淘宝联盟店铺活动推广 编辑:程序博客网 时间:2024/06/01 22:52


给出一个二叉树,询问该二叉树是不是BST(二分查找树)

做法:

假设该树是一颗二分查找树,那么对其进行先序遍历,遍历的顺序是有序。

在遍历的过程中只需记录前一个节点的值和当前节点进行比较,

如果 前一个节点的值  >= 当前节点的值 ,那么就不是BST了

/** * Definition for binary tree * public class TreeNode { *     int val; *     TreeNode left; *     TreeNode right; *     TreeNode(int x) { val = x; } * } */public class Solution {    static int preRetVal = Integer.MIN_VALUE;    static boolean flag = true;    public boolean isValidBST(TreeNode root) {        preRetVal = Integer.MIN_VALUE;        flag = true;        preOrder(root);        return flag;    }        public void preOrder(TreeNode node){         if(node != null && flag){            preOrder(node.left);            if(flag == false){                return;            }            if(preRetVal >= node.val){                flag = false;                return ;            }            preRetVal = node.val;            preOrder(node.right);        }    }    }


0 0
原创粉丝点击