二叉搜索树(Binary Search Tree)也叫二叉查找树。
给定一个二叉树,判断其是否是一个有效的二叉搜索树。
假设一个二叉搜索树具有如下特征:
- 节点的左子树只包含小于当前节点的数。
- 节点的右子树只包含大于当前节点的数。
- 所有左子树和右子树自身必须也是二叉搜索树。
示例 1:
1 | 输入: |
示例 2:
1 | 输入: |
解题思路
利用二叉搜索树中序遍历得到是一个升序数组的特点,使用一个全局变量记录前一个节点,递归与当前节点比较,如果都比当前节点小,那么就是一个二叉搜索树
golang 实现
1 | type TreeNode struct { |