Skip to content

Conversation

@Polqt
Copy link

@Polqt Polqt commented May 9, 2025

Hey there,
I've been working on the "Equivalent Binary Trees" problem and took a look at the Same function. The original approach works, but I noticed a small potential issue: if the trees aren't the same and Same returns false early, the Walk goroutines might get stuck trying to send values to channels that Same is no longer listening to. This could lead to goroutine leaks.

My change addresses this by using buffered channels in the Same function. Since we know tree.New(k) creates trees with 10 elements, I've set a buffer size of 10. This way, even if Same bails out early, the Walk goroutines can still send all their values to the buffer and complete their work, preventing them from hanging around.

The Walk function itself is pretty solid, so I kept that as is.
Let me know what you think!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant