Monday, January 5, 2015

[LeetCode]Validate Binary Search Tree

注意光判断左子结点小于当前节点右子结点大于当前节点是不够的。比如                  5
                                                                                                                                    /  \
                                                                                                                                  3    8
                                                                                                                                    \
                                                                                                                                     6
就满足条件但不是valid BST。要判断也应该是左子树最大值小于当前节点,右子树最小值大于当前节点。不过这样太麻烦,用top-bottom的方法,开始的范围是(-∞,+∞)。每次经过一个结点从(low, high)分割成(low, curr.val)和(curr.val, high)像两个子节点递归。不满足就返回false,碰到null返回true。




代码如下:

No comments:

Post a Comment