bool BinTree::is_avl(BintreeNode *r, int& height)
{
	if (r == NULL)
	{
		height = 0;
		return true;
	}

	int hl,hr;
	bool is_avl_left = is_avl(r->get_left(), hl);
	if ( !is_avl_left )
		return false;

	bool is_avl_right = is_avl(r->get_right(), hr);
	if ( !is_avl_right )
		return false;

	int max = hl>hr ? hl:hr;
	if (2*max-hr-hl > 2)
		return false;

	height = max + 1;
	return true;
}

  

相关文章:

  • 2022-12-23
  • 2021-10-12
  • 2021-04-20
  • 2022-12-23
  • 2021-09-26
  • 2021-09-08
  • 2021-11-24
  • 2022-02-20
猜你喜欢
  • 2022-12-23
  • 2022-03-04
  • 2021-09-14
相关资源
相似解决方案