二叉搜索树递归

难度简单

题目描述

image.png

解题思路

中序遍历
二叉搜索树的中序遍历是有序的,因此我们可以直接对「二叉搜索树」进行中序遍历,保存遍历过程中的最小值即是答案。

作者:AC_OIer
链接:https://leetcode-cn.com/problems/minimum-distance-between-bst-nodes/solution/gong-shui-san-xie-yi-ti-san-jie-shu-de-s-7r17/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Code

  1. public class TreeNode {
  2. int val;
  3. TreeNode left;
  4. TreeNode right;
  5. TreeNode(int x) {
  6. val = x;
  7. }
  8. }
  9. int ans = Integer.MAX_VALUE;
  10. TreeNode prev = null;
  11. public int getMinimumDifference(TreeNode root) {
  12. dfs(root);
  13. return ans;
  14. }
  15. void dfs(TreeNode root) {
  16. if (root == null) return;
  17. dfs(root.left);
  18. if (prev != null) {
  19. ans = Math.min(ans, Math.abs(prev.val - root.val));
  20. }
  21. prev = root;
  22. dfs(root.right);
  23. }