530. 平衡二叉树中,相邻节点的最小差 Minimum Absolute Difference in BST
Given a binary search tree with non-negative values, find the minimum absolute difference between values of any two nodes.
Example:
Input: 1 \ 3 / 2 Output: 1 Explanation: The minimum absolute difference is 1, which is the difference between 2 and 1 (or between 2 and 3).
Note: There are at least two nodes in this BST.
/*** Definition for a binary tree node.* public class TreeNode {* public int val;* public TreeNode left;* public TreeNode right;* public TreeNode(int x) { val = x; }* }*/public class Solution {public int GetMinimumDifference(TreeNode root) {if (root == null) {return 0;}int min = Int32.MaxValue;Stack<TreeNode> stack = new Stack<TreeNode>();TreeNode current = root;while (current != null) {stack.Push(current);current = current.left;}while (stack.Count != 0) {current = stack.Pop();if (stack.Count > 0) {int diff = Math.Abs(stack.Peek().val - current.val);min = Math.Min(diff,min);}TreeNode node = current.right;while (node != null) {stack.Push(node);node = node.left;if (stack.Count > 0) {int diff = Math.Abs(stack.Peek().val - current.val);min = Math.Min(diff,min);}}}return min;}}

浙公网安备 33010602011771号