コード例 #1
0
ファイル: isBalanced.cpp プロジェクト: dalanlan/algo
int depthOfTree(TreeNode *root)
{
	int depth = 0;
	if (root == NULL)
		return depth;
	if(root->left == NULL && root->right == NULL)
		return ++depth;
    return (max(depthOfTree(root->left),depthOfTree(root->right)) + 1);
	
}
コード例 #2
0
ファイル: isBalanced.cpp プロジェクト: dalanlan/algo
bool isBalanced(TreeNode* root)
{
	if(root == NULL)
		return true;
	if(!isBalanced(root->left) || !isBalanced(root->right))
	    return false;

	return (abs(depthOfTree(root->left)-depthOfTree(root->right)) <= 1);
		
}
コード例 #3
0
ファイル: binaryTree.c プロジェクト: rockamitk/DataStructures
/*   Node Deletion Of Binary Tree        */
	int Delete(tree **root,int data)
	{
		tree *t1,*t2;
		
		if(IsEmptyTree(*root)){
			printf("Tree Empty !\n");
			return 0;
			}
			
		t1=findNode(root,data);
		t2=depthOfTree(root);
		
		if(t1 == NULL){
			printf("Not Exist Node : %d\n",data);
			return 0;
			}
			
		t1->data=t2->data;
		t1=t2;
		free(t2);
		return data;
	}