Example #1
0
 void push() {
   if (revert) {
     revert = false;
     Node t = left;
     left = right;
     right = t;
     if (left != null) left.revert = !left.revert;
     if (right != null) right.revert = !right.revert;
   }
   if (left != null) left.delta += delta;
   if (right != null) right.delta += delta;
   nodeValue += delta;
   subTreeValue += delta * size;
   delta = 0;
 }
Example #2
0
 public static void makeRoot(Node x) {
   expose(x);
   x.revert = !x.revert;
 }