老师,LeetCode的第530道题,能不能提供一下解题思路啊
来源:9-7 更多线段树相关的话题
qq_湿腻焦糊_0
2018-04-30
关于二叉树求最小绝对值的那个
写回答
1回答
-
最简单的方法:任意顺序遍历一遍二叉树,将所有节点的值存储在数组中,之后对数组排序,相邻元素相减,找差的最小值。这个思路参见:https://github.com/liuyubobobo/Play-Leetcode/blob/master/0530-Minimum-Absolute-Difference-in-BST/java-0530/src/Solution.java
由于题目给定的树是二分搜索树,所有直接使用中序遍历,就可以得到所有元素的升序排序结果。省去了排序的过程。这个思路参见:https://github.com/liuyubobobo/Play-Leetcode/blob/master/0530-Minimum-Absolute-Difference-in-BST/java-0530/src/Solution2.java
我们之前的方法都是先预存所有的元素到数组中,再找到解。实际上完全可以在中序遍历的过程中,一边遍历一边去寻找这个解。这样做省去了预存所有元素到数组中的空间开销。这个思路参见:https://github.com/liuyubobobo/Play-Leetcode/blob/master/0530-Minimum-Absolute-Difference-in-BST/java-0530/src/Solution3.java
412018-04-30
相似问题