劍指offer之判斷二叉樹是不是平衡二叉樹

1 問題

判斷二叉樹是不是平衡二叉樹

平衡二叉搜索樹(Self-balancing binary search tree)又被稱爲AVL樹(有別於AVL算法),且具有以下性質:它是一 棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹

 

 

 

 

 

 

2 代碼實現

int getTreeHeigh(Node *haed)
{
    if (head == NULLL)
    {
        return 0;
    }
    int left = getTreeHeigh(head->left);
    int right = getTreeHeigh(head->right);
    retur left > right ? (left + 1) : (right + 1);
}

int isBalancedTree(Node *head)
{
	if (head == NULL)
	{
		return NULL;
	}
	int left, right;
	left = isBalancedTree(head->left);
	right = isBalancedTree(head->right);
	int result = left - right;
	if (result > 1 || result < -1)
		return false;
	return isBalancedTree(head->left) && isBalancedTree(head-right);
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章