判断二叉树是否是二叉搜索树
来源:互联网 发布:ubuntu 如何使用汉语 编辑:程序博客网 时间:2024/06/05 00:17
方法一:利用中序遍历
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */import java.util.*;public class Solution { public boolean isValidBST(TreeNode root) { ArrayList<TreeNode> list = new ArrayList<TreeNode>(); if(root ==null) return true; inorder(root,list); for(int i=0;i<list.size()-1;i++){ if(list.get(i).val>=list.get(i+1).val) return false; } return true; } public static void inorder(TreeNode root,ArrayList<TreeNode> list){ if(root!=null){ inorder(root.left,list); list.add(root); inorder(root.right,list); } }
方法二:
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */import java.util.*;public class Solution { public boolean isValidBST(TreeNode root) { if(root==null) return true; Stack<TreeNode> stack = new Stack<>(); 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; }}
阅读全文
0 0
- 判断一棵树是否是二叉搜索树
- 判断是否是搜索二叉树
- 判断二叉树是否是二叉搜索树
- 判断二叉搜索树是否是平衡二叉树
- 判断二叉树是否是二叉搜索树
- 判断一棵二叉树,是否是搜索二叉树
- 二叉树遍历的应用(路径和问题,判断是否是二叉搜索树,判断是否是二叉平衡树)
- 判断二叉树是否是搜索二叉树和完全二叉树
- 判断是否是二叉搜索树的后序遍历
- 判断是否是同一颗二叉搜索树
- 每天一道LeetCode-----判断某棵树是否是二叉搜索树
- 九度题目36:二叉搜索树(判断是否是相同二叉搜索树)
- 二叉搜索树的后序遍历序列序列判断是否是二叉搜索树
- LeetCode(Validate Binary Search Tree) 判断一个二叉树是否是二叉搜索树
- 【BST】判断一棵二叉树是否是搜索二叉树
- 判断给定二叉树是否是二叉搜索树(LeetCode: Validate Binary Search Tree)
- 判断一颗树是否为二叉搜索树
- 判断一棵树是否为二叉搜索树
- Java(4):基础算法(1)--斐波那契数列之小兔子生孩子
- c++初级 之 类型转换
- Java 阿里官方代码规范标准手册终极版下载
- 使ssh不用输入密码
- zookeeper和dubbo
- 判断二叉树是否是二叉搜索树
- 为mysql数据库建立索引
- 机器学习_贝叶斯公式/先验概率/后验概率
- vtkactor 用GetProperty()设置颜色属性不起作用
- Markdown语法说明
- Yii框架防止sql注入,xss攻击与csrf攻击的方法
- 用户与组管理
- Unity框架学习笔记(一) 什么是MVC
- ACM--计算几何--平面扫描