add(ptr,val) and remove(ptr) throw IllegalArgumentException for missing path
Return value of add(ptr,val) should always be the current node