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 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.

题目含义:判断一个二叉树是否为二叉搜索树

思路:按照中序将树转换为数组,然后判断是否为递增

 

 1     public void inorder(TreeNode root) {
 2         if (root == null) return;
 3         inorder(root.left);
 4         values.add(root.val);
 5         inorder(root.right);
 6     }
 7     
 8     public boolean isValidBST(TreeNode root) {
 9         inorder(root);
10         for (int i = 0; i < values.size() - 1; i++) {
11             if (values.get(i) >= values.get(i + 1)) return false;
12         }
13         return true;        
14     }

 

posted @ 2017-10-23 11:05  daniel456  阅读(83)  评论(0编辑  收藏  举报