[leetcode]98. Validate Binary Search Tree@Java解题报告

来源:互联网 发布:基本网络知识 编辑:程序博客网 时间:2024/05/29 10:07

https://leetcode.com/problems/validate-binary-search-tree/description/

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.


思路:搜索二叉树的中序遍历会输出从小到大的序列


package go.jacob.day805;import java.util.Stack;public class Demo1 {/* * 方法一:利用二叉树的中序遍历 */public boolean isValidBST(TreeNode root) {if (root == null)return true;Stack<TreeNode> stack = new Stack<TreeNode>();TreeNode cur = root;TreeNode pre = null;while (!stack.isEmpty() || cur != null) {if (cur == null) {cur = stack.pop();if (pre != null && pre.val >= cur.val)return false;pre = cur;cur = cur.right;} else {stack.push(cur);cur = cur.left;}}return true;}private class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) {val = x;}}}


原创粉丝点击