Exemplo n.º 1
0
        public int GetMinimumDifference(TreeNode root)
        {
            MinDiffInfo mdi = new MinDiffInfo();

            GetMin(root, mdi);
            return(mdi.MinDff);
        }
Exemplo n.º 2
0
        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);
        }