摘要: 题目描述: 给定一个二叉树,判断其是否是一个有效的二叉搜索树。 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 思路分析:递归 因为二叉搜索树中序遍历是递增的,所以我们可以中序遍历判断前一数是否小于 阅读全文
posted @ 2019-11-08 16:18 菜鸟奋斗史 阅读(195) 评论(0) 推荐(0)
摘要: 题目描述: 给定一个整数 n,求以 1 ... n 为节点组成的二叉搜索树有多少种? 思路解析: 动态规划 假设n个节点存在 令G(n)表示从1到n可以形成二叉排序树个数 令f(i)为以i为根的二叉搜索树的个数 即有:G(n) = f(1) + f(2) + f(3) + f(4) + ... + 阅读全文
posted @ 2019-11-08 15:25 菜鸟奋斗史 阅读(329) 评论(0) 推荐(0)
摘要: 题目描述: 给定一个二叉树,返回它的中序遍历。 思路解析: 1)递归:没啥说的,左子树->根->右子树顺序去遍历 2)迭代计算:用栈,再用一个指针模拟访问过程 代码实现: 1)递归 2)迭代: 时间复杂度:O(n)。递归函数 T(n)=2⋅T(n/2)+1。空间复杂度:最坏情况下需要空间O(n)(每 阅读全文
posted @ 2019-11-08 14:35 菜鸟奋斗史 阅读(390) 评论(0) 推荐(0)
摘要: 题目描述: 给定一个二维网格和一个单词,找出该单词是否存在于网格中。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 代码实现: 阅读全文
posted @ 2019-11-08 10:41 菜鸟奋斗史 阅读(230) 评论(0) 推荐(0)