So i am trying to free node of Circular linked list. but when i checked the CSLL object , node is still present.
pub fn SCLL(comptime DataType: type) type {
return struct {
const SCLLNode = struct {
value: DataType,
next: ?*SCLLNode,
fn init(allocator: std.mem.Allocator, value: DataType) !*SCLLNode {
var node = try allocator.create(SCLLNode);
node.value = value;
node.next = null;
return node;
}
};
fn free(self: *Self) void {
if (self.len > 0) {
var temp = self.head;
while (temp != null) {
const to_free = temp;
temp = temp.?.next;
self.allocator.destroy(to_free.?);
// self.len -= 1;
}
self.allocator.destroy(temp.?);
// self.len -= 1;
}
}
.