码迷,mamicode.com
首页 > 编程语言 > 详细

有效二叉查找树判断(java实现)

时间:2014-11-05 22:54:17      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   color   ar   java   sp   div   on   

leetcode 原题 :(即判断二叉树是否为二叉查找树)

Given a binary tree, determine if it is a valid binary search tree (BST).

Assume a BST is defined as follows:

  • The left subtree of a node contains only nodes with keys less than the node‘s key.
  • The right subtree of a node contains only nodes with keys greater than the node‘s key.
  • Both the left and right subtrees must also be binary search trees

下面采用java实现:

public class TreeNode {
        int val;
        TreeNode left;
        TreeNode right;
      TreeNode(int x) { val = x; }
  }
 
public class ValidateBST{
    boolean flag=true;
    TreeNode pre=null;//保存前驱节点
    public boolean isValidBST(TreeNode root) {
         dfs(root);
         return flag;
    }
  //采用中序遍历,如果前节点不小于当前节点的值,则不符合BST的条件
private void dfs(TreeNode root){ if(root!=null){ dfs(root.left); if(pre!=null&&root.val<=pre.val)flag= false; pre=root; dfs(root.right); } }
}

 

有效二叉查找树判断(java实现)

标签:des   style   blog   color   ar   java   sp   div   on   

原文地址:http://www.cnblogs.com/big-sun/p/4077456.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!