I need help filling in the last part of this because I cannot figure out how. It is a case where the node has two kids. I replace the node with its inorder successor, and then delete its inorder successor node. Do I need to make an inOrder method?
public void delete( int myVal )
{
delete( root, myVal );
}
private void delete( Tnode node, int value )
{
if ( ( node.lkid == null ) && ( node.rkid == null ) )
{
node = null;
}
else if ( ( node.lkid == null ) && ( node.rkid != null ) ) {
node = node.rkid;
}
else if ( ( node.lkid != null ) && ( node.rkid == null ) ) {
node = node.lkid;
}
else if ( ( node.lkid != null ) && ( node.rkid != null ) ) {
// TODO implement
}
}