783. Minimum Distance Between BST Nodes(遞歸)

package Recursion;


public class MinDiffInBST_783 {
	// 783. Minimum Distance Between BST Nodes
	/*
	 * Given a Binary Search Tree (BST) with the root node root, return the minimum
	 * difference between the values of any two different nodes in the tree.
	 * 
	 * Example :
	 * 
	 * Input: root = [4,2,6,1,3,null,null] Output: 1 Explanation: Note that root is
	 * a TreeNode object, not an array.
	 * 
	 * The given tree [4,2,6,1,3,null,null] is represented by the following diagram:
	 * 
	 * 4 / \ 2 6 / \ 1 3
	 * 
	 * while the minimum difference in this tree is 1, it occurs between node 1 and
	 * node 2, also between node 3 and node 2.
	 * 
	 * Note:
	 * 
	 * The size of the BST will be between 2 and 100. The BST is always valid, each
	 * node's value is an integer, and each node's value is different.
	 * 
	 * 來源:力扣(LeetCode)
	 * 鏈接:https://leetcode-cn.com/problems/minimum-distance-between-bst-nodes
	 * 著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。
	 */
	public class TreeNode {
		int val;
		TreeNode left;
		TreeNode right;

		TreeNode(int x) {
			val = x;
		}
	}

	int last=Integer.MAX_VALUE;
	int min=Integer.MAX_VALUE;
	public int minDiffInBST(TreeNode root) {
		recur(root);
		return min;

	}

	private void recur(TreeNode root) {
		if (root != null) {
			recur(root.left);
			min=Math.min(Math.abs(last-root.val), min);
			last=root.val;
			recur(root.right);
		}
	}

}

發佈了93 篇原創文章 · 獲贊 8 · 訪問量 9044
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章