题目描述 给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。 示例: 题目链接: https://leetcode cn.com/problems/minimum absolute difference in bst/ 思路 二叉搜索树的中序遍历序列是一个升序序列。任 ...
分类:
其他好文 时间:
2020-05-05 23:45:00
阅读次数:
178
解题(失败) 思路 分别遍历左右子树,用pre存储上一个节点,作比较 代码 本想把左右子树判断函数合并,但运行结果是错的,问题复杂化了,思路有问题 优解 思路 中序遍历时,判断当前节点是否大于中序遍历的前一个节点,如果大于,说明满足BST,继续遍历;否则直接返回false 代码 小结 做题前缺乏思考 ...
分类:
编程语言 时间:
2020-05-05 23:22:34
阅读次数:
84
https://leetcode-cn.com/problems/validate-binary-search-tree/ 树题,没什么好说的,直接递归就完事了。 第一种,使用中序遍历将输出值保存在list中,然后检查这个list是否升序的就可以AC.不过这个方法比较慢,3ms,java上只击败了1 ...
分类:
其他好文 时间:
2020-05-05 11:01:33
阅读次数:
48
解题思路 1. 看到题目想了想就知道用递归了,不断划分左右子树; 2. 这道题做了很久,因为对 "指针引用" 的不熟悉,一开始我使用的递归函数的返回类型为void,是通过指针作为递归函数的参数,不断更新树,最后改成这种容易看的方式; 3. 主要是要注意划分左右子树的索引,改了很多次都是因为递归时传右 ...
分类:
其他好文 时间:
2020-05-04 17:32:58
阅读次数:
56
思路:中序遍历,就是按照“左,中,右”的顺序遍历一个二叉树。 1.递归,先递归左子树,之后把根节点放进res里,在递归右节点即可,可以把res设置为全局变量,或者再写一个函数,res当成参数传递都可以。代码如下,比较简单。 /** * Definition for a binary tree nod ...
分类:
其他好文 时间:
2020-05-04 15:51:55
阅读次数:
61
思路:前序遍历,也就是“根,左,右”的顺序去遍历,递归思路简单,不细说了,把res,结果集合设置成全局变量就行 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; ...
分类:
其他好文 时间:
2020-05-04 15:15:58
阅读次数:
53
前序遍历思路 中序遍历思路 后序遍历思路 法1: 法2: ...
分类:
其他好文 时间:
2020-05-04 13:44:36
阅读次数:
171
题目描述 给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子 结点,同时包含指向父结点的指针。 解题思路 ...
分类:
其他好文 时间:
2020-05-04 00:31:00
阅读次数:
46
题目: 解答: 首先复习下二叉搜索树的定义:对于树中的所有子树都有,左子树上的值都小于根节点的值,右子树上的值都大于根节点上的值。 总结一下就是,树的中序遍历可以得到一个升序序列。 那如何保证高度最小呢?当树中的任意结点的左右子树高度差都不超过 1 时,整棵树的深度最小。 下面是一种构造最小高度树的 ...
分类:
其他好文 时间:
2020-05-03 16:48:16
阅读次数:
59
题目: 解答: 1 /** 2 * Definition for a binary tree node. 3 * public class TreeNode { 4 * int val; 5 * TreeNode left; 6 * TreeNode right; 7 * TreeNode(int ...
分类:
其他好文 时间:
2020-05-03 16:21:26
阅读次数:
53