public int GetMinimumDifference(TreeNode root) { MinDiffInfo mdi = new MinDiffInfo(); GetMin(root, mdi); return(mdi.MinDff); }
private void GetMin(TreeNode root, MinDiffInfo mdi) { if (root == null) { return; } GetMin(root.left, mdi); mdi.CurrentDiff = root.val - mdi.LastVal; if (mdi.CurrentDiff < 0) { mdi.CurrentDiff *= -1; } if (mdi.CurrentDiff < mdi.MinDff) { mdi.MinDff = mdi.CurrentDiff; } mdi.LastVal = root.val; GetMin(root.right, mdi); }