/** * Prune all nodes scheduled for deletion. */ private void drainZeroQueue() { for(int i = 0, size = zeroQueue.size(); i < size; i++) { SimpleNode < T0> node = zeroQueue.get(i); if(node.right == null) { replaceChild(node, node.left); } else if(node.left == null) { replaceChild(node, node.right); } else { node = replaceEmptyNodeWithChild(node); } } zeroQueue.clear(); }
/** * Prune all nodes scheduled for deletion. */ private void drainZeroQueue() { for(int i = 0, size = zeroQueue.size(); i < size; i++) { SimpleNode < T0> node = zeroQueue.get(i); if(node.right == null) { replaceChild(node, node.left); } else if(node.left == null) { replaceChild(node, node.right); } else { node = replaceEmptyNodeWithChild(node); } } zeroQueue.clear(); }
/** * Prune all nodes scheduled for deletion. */ private void drainZeroQueue() { for(int i = 0, size = zeroQueue.size(); i < size; i++) { SimpleNode < T0> node = zeroQueue.get(i); if(node.right == null) { replaceChild(node, node.left); } else if(node.left == null) { replaceChild(node, node.right); } else { node = replaceEmptyNodeWithChild(node); } } zeroQueue.clear(); }
replaceChild(replacement, replacement.left); replacement.height = toReplace.height; replacement.refreshCounts(!zeroQueue.contains(replacement)); replaceChild(toReplace, replacement); fixCountsThruRoot(replacement.parent, 1 );
replaceChild(replacement, replacement.left); replacement.height = toReplace.height; replacement.refreshCounts(!zeroQueue.contains(replacement)); replaceChild(toReplace, replacement); fixCountsThruRoot(replacement.parent, 1 );
replaceChild(replacement, replacement.left); replacement.height = toReplace.height; replacement.refreshCounts(!zeroQueue.contains(replacement)); replaceChild(toReplace, replacement); fixCountsThruRoot(replacement.parent, 1 );