MCPcopy Index your code
hub / github.com/davidgiven/luje / deleteNode

Method deleteNode

lib/java/util/TreeMap.java:2098–2134  ·  view source on GitHub ↗
(Node<K, V> node)

Source from the content-addressed store, hash-verified

2096 }
2097
2098 private void deleteNode(Node<K, V> node) {
2099 if (node.right == null) {
2100 if (node.left != null) {
2101 attachToParent(node, node.left);
2102 } else {
2103 attachNullToParent(node);
2104 }
2105 fixNextChain(node);
2106 } else if(node.left == null) { // node.right != null
2107 attachToParent(node, node.right);
2108 fixNextChain(node);
2109 } else {
2110 // Here node.left!=nul && node.right!=null
2111 // node.next should replace node in tree
2112 // node.next!=null by tree logic.
2113 // node.next.left==null by tree logic.
2114 // node.next.right may be null or non-null
2115 Node<K, V> toMoveUp = node.next;
2116 fixNextChain(node);
2117 if(toMoveUp.right==null){
2118 attachNullToParent(toMoveUp);
2119 } else {
2120 attachToParent(toMoveUp, toMoveUp.right);
2121 }
2122 // Here toMoveUp is ready to replace node
2123 toMoveUp.left = node.left;
2124 if (node.left != null) {
2125 node.left.parent = toMoveUp;
2126 }
2127 toMoveUp.right = node.right;
2128 if (node.right != null) {
2129 node.right.parent = toMoveUp;
2130 }
2131 attachToParentNoFixup(node,toMoveUp);
2132 toMoveUp.color = node.color;
2133 }
2134 }
2135
2136 private void attachToParentNoFixup(Node<K, V> toDelete, Node<K, V> toConnect) {
2137 // assert toConnect!=null

Callers 4

removeLeftmostMethod · 0.95
removeRightmostMethod · 0.95
removeMiddleElementMethod · 0.95
removeFromIteratorMethod · 0.95

Calls 4

attachToParentMethod · 0.95
attachNullToParentMethod · 0.95
fixNextChainMethod · 0.95
attachToParentNoFixupMethod · 0.95

Tested by

no test coverage detected