LeetCode 98. Validate Binary Search Tree Add to List
来源:互联网 发布:python 内容管理系统 编辑:程序博客网 时间:2024/06/05 15:23
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 3Binary tree
[2,1,3]
, return true.Example 2:
1 / \ 2 3
Binary tree [1,2,3]
, return false.
解题思路:中序遍历该树,记录访问过的最大节点的值,所有将要访问的节点的值应该大于该值,通过对每个当前访问的节点与目前最大值进行比较,就可以得出结果。
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public boolean isValidBST(TreeNode root) { //中序遍历,然后将遍历的结果进栈,下一个将要进栈的数一定要大于等于栈顶元素 Stack<Integer> stacknum = new Stack<Integer>(); //本来想用number来记录当前访问的最大值,但是会出现正好用MIN_VAIUE作为节点的特例 //int number=java.lang.Integer.MIN_VALUE; Stack<TreeNode> stacknode=new Stack<TreeNode>(); if(root==null){ return true; }else if(root.left==null && root.right==null){ return true; }else{ //stacknode.push(root); TreeNode p = root; while(!stacknode.empty() || p!=null){ // p = stacknode.pop(); // p=p.left; while(p!=null){ stacknode.push(p); p=p.left; } p=stacknode.pop(); if(stacknum.empty()){ stacknum.push(p.val); }else{ if(stacknum.pop()<p.val){ stacknum.push(p.val); }else{ return false; } } /*if(number<p.val){ number=p.val; }else{ return false; }*/ p=p.right; } return true; } }};
0 0
- LeetCode 98. Validate Binary Search Tree Add to List
- LeetCode98. Validate Binary Search Tree Add to List
- LeetCode 99. Recover Binary Search Tree Add to List
- leetcode- Add to List 669. Trim a Binary Search Tree
- LeetCode 98. Validate Binary Search Tree
- [LeetCode]98.Validate Binary Search Tree
- [Leetcode] 98. Validate Binary Search Tree
- LeetCode --- 98. Validate Binary Search Tree
- [leetcode] 98.Validate Binary Search Tree
- [leetcode] 98.Validate Binary Search Tree
- [Leetcode] 98. Validate Binary Search Tree @python
- Leetcode 98. Validate Binary Search Tree
- [LeetCode]98. Validate Binary Search Tree
- leetcode 98. Validate Binary Search Tree
- *LeetCode 98. Validate Binary Search Tree
- 98. Validate Binary Search Tree LeetCode
- LeetCode 98. Validate Binary Search Tree
- LeetCode 98. Validate Binary Search Tree
- 栈及其实现
- 数据结构与算法
- scala(一)
- 【Unified Auditing】统一审计的存储(12.2)
- 欢迎使用CSDN-markdown编辑器
- LeetCode 98. Validate Binary Search Tree Add to List
- Android使用Retrofit请求WebService
- 二叉树遍历:已知前序中序输出后序/已知后序中序输出前序
- python基础学习(二):数据类型
- 哈希hash
- POJ 2485(建高速公路__最小生成树)
- domain、entity和model的package的不同用法
- 12个有趣的C语言面试题及答案
- wampsever无法进入phpadmin等