首页 > 代码库 > 530. 平衡二叉树中,相邻节点的最小差 Minimum Absolute Difference in BST
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;
}
}
null
530. 平衡二叉树中,相邻节点的最小差 Minimum Absolute Difference in BST
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。