kanwei/algorithms

[CRBTreeMap] Segmentation fault at Leetcode #1429

alantudyk opened this issue · 4 comments

Only 1 line is different:

OK: https://leetcode.com/submissions/detail/1075862918/

@t.delete p if @t[p]

Not OK: https://leetcode.com/submissions/detail/1075860617/

@t.delete p

I can confirm that deleting a non-existent element causes a segmentation fault sometimes. If you run rspec ten times or so you should see a segmentation fault.

Causes seg fault with ruby 3.2.2

require 'algorithms'
include Containers

tree = CRBTreeMap.new

tree.push(2, 2)
tree.delete(3)

A similar issue exists inside RubyRBTreeMap

require 'algorithms'
include Containers

tree = RubyRBTreeMap.new

tree.push(2,2)
tree.delete(3)
`delete_recursive': undefined method `left' for nil:NilClass (NoMethodError)

      if ( !isred(node.right) && !isred(node.right.left) )

I have a fix waiting for a PR review.