LeetCode98. Validate Binary Search Tree -判断是否为二叉排序树
Posted walkersteve
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode98. Validate Binary Search Tree -判断是否为二叉排序树相关的知识,希望对你有一定的参考价值。
一、描述:
二、思路:
二叉排序树(BST),中序遍历的结果一定是非递减序列(来自百度百科);
本题中对于BST的定义是要么大于,要么小与,即遍历结果只能是递增序列,故可以通过判断中序遍历的结果序列是否是递增序列,来判断是否为合法BST;
另一种方法是使用递归;
三、代码:
1、非递归,通过中序遍历结果判断:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { private List<Integer> list = new ArrayList<Integer>(); public boolean isValidBST(TreeNode root) { inorderTraversal(root); int size = list.size(); if(size==0 || size==1){ return true; } for(int i=0;i<size-1;i++){ if((list.get(i)) >= (list.get(i+1))){ return false; } } return true; } //中序遍历 public void inorderTraversal(TreeNode root){ if(root==null){ return; }else{ inorderTraversal(root.left); list.add(root.val); inorderTraversal(root.right); } } }
2、递归:明天再写
以上是关于LeetCode98. 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