Skip to content

Commit 52db277

Browse files
authored
fix: remove memory leak from iterative_tree_traversals.cpp (#2720)
1 parent 54a20b4 commit 52db277

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

others/iterative_tree_traversals.cpp

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,25 @@ std::vector<int64_t> BinaryTree::inOrderIterative(Node *root) {
180180
}
181181
return result;
182182
}
183+
void deleteAll(Node *root) {
184+
if (root) {
185+
std::stack<Node *> stack;
186+
stack.push(root);
187+
188+
while (!stack.empty()) {
189+
const Node *current = stack.top();
190+
stack.pop();
191+
192+
if (current->right) {
193+
stack.push(current->right);
194+
}
195+
if (current->left) {
196+
stack.push(current->left);
197+
}
198+
delete current;
199+
}
200+
}
201+
}
183202
} // namespace iterative_tree_traversals
184203
} // namespace others
185204

@@ -396,5 +415,7 @@ int main() {
396415
test6(binaryTree, root); // run inorder-iterative test on negative values
397416
std::cout << "\nIn-order test on-negative value Passed!" << std::endl;
398417

418+
deleteAll(root);
419+
399420
return 0;
400421
}

0 commit comments

Comments
 (0)