Skip to content

Commit 9d76f8b

Browse files
committed
fix: remove memory leak by adding deleteAllNodes
1 parent 7c09048 commit 9d76f8b

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

data_structures/avltree.cpp

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,8 @@ node *minValue(node *root) {
6464

6565
/** Balanced Insertion */
6666
node *insert(node *root, int item) {
67-
node *nn = createNode(item);
6867
if (root == NULL)
69-
return nn;
68+
return createNode(item);
7069
if (item < root->data)
7170
root->left = insert(root->left, item);
7271
else
@@ -115,6 +114,15 @@ node *deleteNode(node *root, int key) {
115114
return root;
116115
}
117116

117+
/** Calls delete on every node */
118+
void deleteAllNodes(const node *const root) {
119+
if (root) {
120+
deleteAllNodes(root->left);
121+
deleteAllNodes(root->right);
122+
delete root;
123+
}
124+
}
125+
118126
/** LevelOrder (Breadth First Search) */
119127
void levelOrder(node *root) {
120128
std::queue<node *> q;
@@ -144,5 +152,6 @@ int main() {
144152
root = deleteNode(root, 4); // Deletin key with value 4
145153
std::cout << "\nLevelOrder: ";
146154
levelOrder(root);
155+
deleteAllNodes(root);
147156
return 0;
148157
}

0 commit comments

Comments
 (0)