本文介绍: 题意理解:首先明确二叉树的定义,对于所有节点,根节点的值大于左子树所有节点的值,小于右子树所有节点的值。,如下图:他每个节点根节点大于左孩子,小于右孩子。但是他的每个根节点不大于左子树的所有节点的值,小于右子树所有节点的值,它是无序的,不是一颗二叉搜索树.二叉搜索树的特点:二叉搜索树的中序遍历是单调递增的数列。
1.数列递增判断【其实也是递归】
已知二叉搜索树的中序遍历的单调递增的,所以只要判断二叉树中序遍历数列是否单调递增即可。
2.递归
3.递归+双指针优化
把maxValue改为使用 TreeNode pre,来指向遍历的前一个节点,root总是指向当前节点,不需要复杂的考虑long还是int的问题,其余地方其实是一样的。
4.迭代
迭代还是之前遍历的套路,需要使用栈保存节点,模拟递归,会有一点麻烦。
5.分析
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。