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

xiaoxiao2021-02-28  95

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; } } }

转载请注明原文地址: https://www.6miu.com/read-17859.html

最新回复(0)