请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师,LeetCode的第530道题,能不能提供一下解题思路啊

正在回答

1回答

liuyubobobo 2018-04-30 21:02:31

最简单的方法:任意顺序遍历一遍二叉树,将所有节点的值存储在数组中,之后对数组排序,相邻元素相减,找差的最小值。这个思路参见: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

4 回复 有任何疑惑可以回复我~
  • 提问者 qq_湿腻焦糊_0 #1
    感谢老师的帮助!!
    回复 有任何疑惑可以回复我~ 2018-04-30 21:16:02
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信