98. Validate Binary Search Tree-leetcode-java

【原来在SAE的blog上,都转到CSDN了。。】

98. Validate Binary Search Tree-leetcode-java

题意

Given a binary tree, determine if it is a valid binary search tree (BST).

判定一棵树是不是二分搜索树。

思路:判定中序遍历出来的结果是不是递增的。

public class Solution {
List<Integer> list=new ArrayList<Integer>();
public boolean isValidBST(TreeNode root) {
if(root==null) return true;
if(root.left==null && root.right==null) return true;
inOrderTraversal(root);
for(int i=1;i<list.size();i++){
if(list.get(i)<=list.get(i-1)) return false;
}
return true;
}
public void inOrderTraversal(TreeNode root){
if(root!=null){
inOrderTraversal(root.left);
list.add(root.val);
inOrderTraversal(root.right);
}
}
}

网上还有个解法,也是中序遍历,但是写法不一样,对于这种写法,我还不是太理解唉……

  1. public class Solution {
  2.     // Keep the previous value in inorder traversal.
  3.     TreeNode pre = null;
  4.     public boolean isValidBST(TreeNode root) {
  5.         // Traverse the tree in inorder.
  6.         if (root != null) {
  7.             // Inorder traversal: left first.
  8.             if (!isValidBST(root.left)) return false;
  9.             // Compare it with the previous value in inorder traversal.
  10.             if (pre != null && root.val <= pre.val) return false;
  11.             // Update the previous value.
  12.             pre = root;
  13.             // Inorder traversal: right last.
  14.             return isValidBST(root.right);
  15.         }
  16.         return true;
  17.      }
  18. }

根据这道题,又顺便搜索了B- B+ B* 又理解了一遍思想。大话数据结构上还讲解了2-3树,2-3-4树,由这俩是B树的特例引出了B树。大话上就是讲的挺易于理解的,讲故事一样的。

关于B树和B-树,网上的概念有争议。

大话数据结构上是 B树即B-tree,是一种平衡的多路查找树。

而另一说法是B树是指二叉搜索树,B-树是多路查找树。

先不过多纠结了,暂且把每棵树的具体思想搞清楚。

发表在 leetcode 标签有 BSTjavaleetcode 发表回复
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值