Using postorder traversal , delete tree , as we should delete child nodes first instead of parent node for straight tree deletion
#include<stdio.h>
#include<stdlib.h>
struct treeNode
{
int data;
struct treeNode* left;
struct treeNode* right;
};
struct treeNode* newNode(int n)
{
struct treeNode* node = (struct treeNode*) malloc(sizeof(struct treeNode));
node->data = n;
node->left = NULL;
node->right = NULL;
return node;
}
void deleteTree(struct treeNode* node)
{
if (node == NULL)
{
return;
}
deleteTree(node->left);
deleteTree(node->right);
free(node);
}
int main()
{
struct treeNode *root = newNode(1);
root->left = newNode(2);
root->right = newNode(3);
root->left->left = newNode(4);
root->left->right = newNode(5);
deleteTree(root);
root = NULL;
printf("\n Tree deleted ");
getchar();
return 0;
}
No comments:
Post a Comment