¸üÐÂʱ¼ä£º2016-01-27 22:34:02ä¯ÀÀ´ÎÊý£º1+´Î
Ë㷨˼·£ºÏȱàдһ¸ö¼ÆËã¶þ²æÊ÷Éî¶ÈµÄº¯ÊýGetDepth£¬ÀûÓõݹéʵÏÖ£»È»ºóÔٵݹéÅжÏÿ¸ö½ÚµãµÄ×óÓÒ×ÓÊ÷µÄÉî¶ÈÊÇ·ñÏà²î1
static int GetDepth(BinNode root)
{
if (root == null)
return 0;
int leftLength = GetDepth(root.Left);
int rightLength = GetDepth(root.Right);
return (leftLength > rightLength
leftLength : rightLength) + 1;
}
×¢ÒâÕâÀïµÄ+1£¬¶ÔÓ¦ÓÚroot²»Îª¿Õ£¨Ëã×÷µ±Ç°1¸öÉî¶È£©
static bool IsBalanceTree(BinNode root)
{
if (root == null)
return true;
int leftLength = GetDepth(root.Left);
int rightLength = GetDepth(root.Right);
int distance = leftLength > rightLength
leftLength - rightLength : rightLength -leftLength;
if (distance > 1)
return false;
else
return IsBalanceTree(root.Left) && IsBalanceTree(root.Right);
}
ÉÏÊö³ÌÐòµÄÂß¼ÊÇ£¬Ö»Òªµ±Ç°½ÚµãrootµÄLeftºÍRightÉî¶È²î²»³¬¹ý1£¬¾ÍµÝ¹éÅжÏLeftºÍRightÊÇ·ñÒ²·ûºÏÌõ¼þ£¬Ö±µ½ÎªLeft»òRightΪnull£¬ÕâÒâζ×ÅËüÃǵÄÉî¶ÈΪ0£¬ÄÜ×ßµ½ÕâÒ»²½£¬Ç°Ãæ±ØÈ»¶¼·ûºÏÌõ¼þ£¬ËùÒÔÕû¸ö¶þ²æÊ÷¶¼·ûºÏÌõ¼þ¡£
Ïà¹Ø×ÊѶ
ÆäËûÍƼö
Ïà¹ØºÏ¼¯