题目要求:给定一个二叉树,判断其是否是一个有效的二叉搜索树。
思路:首先对于二叉搜索树,它的中序遍历是有序的。最简单的想法就是将二叉搜索树转成一个数组,验证数组是否有序就可以(二叉搜索树中没有重复元素)。也可以不新建数组,直接在树上进行操作,但注意二叉搜索树的定义,左子树节点都小于中间节点,右子树都大于中间节点,可以通过双指针法进行优化。
leetcode实战:
代码实现:
递归法:
迭代法:
题目要求:给定一个二叉树,判断其是否是一个有效的二叉搜索树。
思路:首先对于二叉搜索树,它的中序遍历是有序的。最简单的想法就是将二叉搜索树转成一个数组,验证数组是否有序就可以(二叉搜索树中没有重复元素)。也可以不新建数组,直接在树上进行操作,但注意二叉搜索树的定义,左子树节点都小于中间节点,右子树都大于中间节点,可以通过双指针法进行优化。
leetcode实战:
代码实现:
递归法:
迭代法: