Leetcode 98. Validate Binary Search Tree 验证二叉搜索树 解题报告

原创 2016年08月31日 14:57:54

1 解题思想

这题我的做法,直接就是先序遍历,遍历过程中,检查是否出错了,代码很简单。

注意用于上一个值追踪的last,一开始必须要比Int的最小值小才行,所以用了long

2 原题

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.
Example 1:
    2
   / \
  1   3
Binary tree [2,1,3], return true.
Example 2:
    1
   / \
  2   3
Binary tree [1,2,3], return false.

3 AC解

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
public class Solution {
    long last = Long.MIN_VALUE;
     //采用左中右遍历后检查是否递增
    public boolean isValidBST(TreeNode root) {  
        if (root == null) return true;  
        if ( !isValidBST(root.left) ) return false;  
        if (root.val <= last) return false;
        last = root.val;
        return isValidBST(root.right) ;
    } 
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

二叉搜索树(Binary Search Tree )的定义及分析

定义:     二叉搜索树或者是一棵空树,或者是具有下列性质的二叉树: 每个结点都有一个作为搜索依据的关键码(key),所有结点的关键码互不相同。 左子树(如果非空)上所...
  • jsh13417
  • jsh13417
  • 2013年01月22日 21:59
  • 3332

二叉查找树(binary search tree)——python实现

二叉查找树(binary search tree) 顾名思义二叉查找树中每个jied
  • u013184096
  • u013184096
  • 2014年07月11日 21:59
  • 1432

数据结构(Java语言)——BinarySearchTree简单实现

二叉树的一个重要应用是它们在查找中的使用。使二叉树成为二叉查找树的性质是,对于树中的每个节点X,它的左子树中所有项的值都大于X中的项。注意,这意味着该树所有的元素都可以用某种一致的方式排序。 现在给出...
  • zhang_zp2014
  • zhang_zp2014
  • 2015年08月14日 21:55
  • 927

98. Validate Binary Search Tree(判断合法二叉搜索树)

Given a binary tree, determine if it is a valid binary search tree (BST).Assume a BST is defined as ...
  • FreeeLinux
  • FreeeLinux
  • 2017年02月05日 11:57
  • 215

二叉搜索树的简单实现(Binary Search Tree)

一、二叉搜索树的概念 二叉搜索树,又称二叉排序树,二叉查找树,他能够高效的完成数据的插入,查询,删除操作,是一种高效的数据结构。 如下图就是一个构建好的二叉搜索树。 特点:    ...
  • chaiwenjun000
  • chaiwenjun000
  • 2015年09月18日 19:49
  • 990

二叉排序树/二叉查找树(Binary Search Tree)原理

一  二叉排序树/二叉查找树(Binary Search Tree),或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空...
  • zhangtian6691844
  • zhangtian6691844
  • 2016年06月20日 17:24
  • 1436

二分查找树的C++实现 Binary Search Tree(BST)

用C++实现了二叉查找树的 创建 插入 删除 遍历(宽度优先和三种深度优先[前序,中序,后序]) 查找某值 查找最大值和最小值 清空 复制二叉树(深复制) #include #include u...
  • showonstage1
  • showonstage1
  • 2014年03月13日 19:14
  • 1620

poj1577 二叉查找树复原,然后中序遍历输出

Falling Leaves Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 4521   ...
  • Summer__show_
  • Summer__show_
  • 2016年07月26日 16:35
  • 599

Binary Search Tree(二叉搜索树)

problem description A binary search tree is a binary tree that satisfies the following properties: ...
  • deaidai
  • deaidai
  • 2017年05月04日 11:42
  • 147

二叉搜索树(binary search tree)

性质 设 x 是二叉搜索树中的一个结点。如果 y 是 x 左子树中的一个结点,那么 y.key ≤ x.key。如果 y 是 x 右子树中的一个结点,那么 y.key ≥ x.key。 特性期望高...
  • bnbjin
  • bnbjin
  • 2017年12月02日 20:13
  • 20
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Leetcode 98. Validate Binary Search Tree 验证二叉搜索树 解题报告
举报原因:
原因补充:

(最多只允许输入30个字)