| 441 | } |
| 442 | |
| 443 | static Node leftBalance(Object key, Object val, Node ins, Node right){ |
| 444 | if(ins instanceof Red && ins.left() instanceof Red) |
| 445 | return red(ins.key, ins.val(), ins.left().blacken(), black(key, val, ins.right(), right)); |
| 446 | else if(ins instanceof Red && ins.right() instanceof Red) |
| 447 | return red(ins.right().key, ins.right().val(), |
| 448 | black(ins.key, ins.val(), ins.left(), ins.right().left()), |
| 449 | black(key, val, ins.right().right(), right)); |
| 450 | else |
| 451 | return black(key, val, ins, right); |
| 452 | } |
| 453 | |
| 454 | |
| 455 | static Node rightBalance(Object key, Object val, Node left, Node ins){ |