# Node name # Insert ## Root just change color to black ```mermaid --- title: Only root --- flowchart TB id1((0)) style id1 fill:#000,color:#fff ``` ## Parent is red ### Uncle is nil ```mermaid --- title: Same direction --- flowchart TB subgraph situation direction TB id1((0)) id2((1)) id3((nil)) id4((2)) id5((nil)) style id1 fill:#f00,color:#fff style id2 fill:#f00,color:#fff style id3 fill:#fff,color:#fff style id4 fill:#000,color:#fff style id5 fill:#fff,color:#fff id2 --> id1 id2 --> id3 id4 --> id2 id4 --> id5 end subgraph single [parent single rotation] direction TB id6((0)) id7((1)) id8((2)) style id6 fill:#f00,color:#fff style id7 fill:#f00,color:#fff style id8 fill:#000,color:#fff id7 --> id6 id7 --> id8 end subgraph color [color change] direction TB id9((0)) id10((1)) id11((2)) style id9 fill:#f00,color:#fff style id10 fill:#000,color:#fff style id11 fill:#f00,color:#fff id10 --> id9 id10 --> id11 end situation --> single single --> color ``` ```mermaid --- title: Opposite direction --- flowchart TB subgraph situation direction TB id1((nil)) id2((0)) id3((1)) id4((2)) id5((nil)) style id1 fill:#fff,color:#fff style id2 fill:#f00,color:#fff style id3 fill:#f00,color:#fff style id4 fill:#000,color:#fff style id5 fill:#fff,color:#fff id2 --> id1 id2 --> id3 id4 --> id2 id4 --> id5 end subgraph single0 [child single rotation] direction TB id12((0)) id13((1)) id14((nil)) id15((2)) id16((nil)) style id12 fill:#f00,color:#fff style id13 fill:#f00,color:#fff style id14 fill:#fff,color:#fff style id15 fill:#000,color:#fff style id16 fill:#fff,color:#fff id13 --> id12 id13 --> id14 id15 --> id13 id15 --> id16 end situation --> single0 single0 --> sd[same direction] ``` ### Uncle is black ```mermaid --- title: Uncle is black --- flowchart TB subgraph situation direction TB id1((0)) id2((1)) id3((2)) id4((3)) id5((4)) id6((5)) id7((6)) id8((7)) id9((8)) style id1 fill:#0f0,color:#fff style id2 fill:#f00,color:#fff style id3 fill:#0f0,color:#fff style id4 fill:#f00,color:#fff style id5 fill:#0f0,color:#fff style id6 fill:#000,color:#fff style id7 fill:#0f0,color:#fff style id8 fill:#000,color:#fff style id9 fill:#0f0,color:#fff id2 --> id1 id2 --> id3 id4 --> id2 id4 --> id5 id6 --> id4 id6 --> id8 id8 --> id7 id8 --> id9 end subgraph single [parent single rotation] direction TB id10((0)) id11((1)) id12((2)) id13((3)) id14((4)) id15((5)) id16((6)) id17((7)) id18((8)) style id10 fill:#0f0,color:#fff style id11 fill:#f00,color:#fff style id12 fill:#0f0,color:#fff style id13 fill:#f00,color:#fff style id14 fill:#0f0,color:#fff style id15 fill:#000,color:#fff style id16 fill:#0f0,color:#fff style id17 fill:#000,color:#fff style id18 fill:#0f0,color:#fff id11 --> id10 id11 --> id12 id13 --> id11 id13 --> id15 id15 --> id14 id15 --> id17 id17 --> id16 id17 --> id18 end subgraph color [color change] direction TB id19((0)) id20((1)) id21((2)) id22((3)) id23((4)) id24((5)) id25((6)) id26((7)) id27((8)) style id19 fill:#0f0,color:#fff style id20 fill:#f00,color:#fff style id21 fill:#0f0,color:#fff style id22 fill:#000,color:#fff style id23 fill:#0f0,color:#fff style id24 fill:#f00,color:#fff style id25 fill:#0f0,color:#fff style id26 fill:#000,color:#fff style id27 fill:#0f0,color:#fff id20 --> id19 id20 --> id21 id22 --> id20 id22 --> id24 id24 --> id23 id24 --> id26 id26 --> id25 id26 --> id27 end situation --> single single --> color ``` ```mermaid --- title: Opposite direction --- flowchart TB subgraph situation direction TB id1((0)) id2((1)) id3((2)) id4((3)) id5((4)) id6((5)) id7((6)) id8((7)) id9((8)) style id1 fill:#0f0,color:#fff style id2 fill:#f00,color:#fff style id3 fill:#0f0,color:#fff style id4 fill:#f00,color:#fff style id5 fill:#0f0,color:#fff style id6 fill:#000,color:#fff style id7 fill:#0f0,color:#fff style id8 fill:#000,color:#fff style id9 fill:#0f0,color:#fff id2 --> id1 id2 --> id4 id4 --> id3 id4 --> id5 id6 --> id2 id6 --> id8 id8 --> id7 id8 --> id9 end subgraph single0 [child single rotation] direction TB id10((0)) id11((1)) id12((2)) id13((3)) id14((4)) id15((5)) id16((6)) id17((7)) id18((8)) style id10 fill:#0f0,color:#fff style id11 fill:#f00,color:#fff style id12 fill:#0f0,color:#fff style id13 fill:#f00,color:#fff style id14 fill:#0f0,color:#fff style id15 fill:#000,color:#fff style id16 fill:#0f0,color:#fff style id17 fill:#000,color:#fff style id18 fill:#0f0,color:#fff id11 --> id10 id11 --> id12 id13 --> id11 id13 --> id14 id15 --> id13 id15 --> id17 id17 --> id16 id17 --> id18 end situation --> single0 single0 --> sd[same direction] ``` ### Uncle is red ```mermaid --- title: Uncle is red --- flowchart TB subgraph situation direction TB id1((0)) id2((1)) id3((2)) id4((3)) id5((4)) id6((5)) id7((6)) id8((7)) id9((8)) style id1 fill:#0f0,color:#fff style id2 fill:#f00,color:#fff style id3 fill:#0f0,color:#fff style id4 fill:#f00,color:#fff style id5 fill:#0f0,color:#fff style id6 fill:#000,color:#fff style id7 fill:#0f0,color:#fff style id8 fill:#f00,color:#fff style id9 fill:#0f0,color:#fff id2 --> id1 id2 --> id3 id4 --> id2 id4 --> id5 id6 --> id4 id6 --> id8 id8 --> id7 id8 --> id9 end subgraph color [color change] direction TB id10((0)) id11((1)) id12((2)) id13((3)) id14((4)) id15((5)) id16((6)) id17((7)) id18((8)) style id10 fill:#0f0,color:#fff style id11 fill:#f00,color:#fff style id12 fill:#0f0,color:#fff style id13 fill:#000,color:#fff style id14 fill:#0f0,color:#fff style id15 fill:#f00,color:#fff style id16 fill:#0f0,color:#fff style id17 fill:#000,color:#fff style id18 fill:#0f0,color:#fff id11 --> id10 id11 --> id12 id13 --> id11 id13 --> id14 id15 --> id13 id15 --> id17 id17 --> id16 id17 --> id18 end situation --> color color --> sd[assume '5' is inserted, continue adjusting] ``` ```mermaid --- title: Opposite direction --- flowchart TB subgraph situation direction TB id1((0)) id2((1)) id3((2)) id4((3)) id5((4)) id6((5)) id7((6)) id8((7)) id9((8)) style id1 fill:#0f0,color:#fff style id2 fill:#f00,color:#fff style id3 fill:#0f0,color:#fff style id4 fill:#f00,color:#fff style id5 fill:#0f0,color:#fff style id6 fill:#000,color:#fff style id7 fill:#0f0,color:#fff style id8 fill:#f00,color:#fff style id9 fill:#0f0,color:#fff id2 --> id1 id2 --> id4 id4 --> id3 id4 --> id5 id6 --> id2 id6 --> id8 id8 --> id7 id8 --> id9 end subgraph single0 [child single rotation] direction TB id10((0)) id11((1)) id12((2)) id13((3)) id14((4)) id15((5)) id16((6)) id17((7)) id18((8)) style id10 fill:#0f0,color:#fff style id11 fill:#f00,color:#fff style id12 fill:#0f0,color:#fff style id13 fill:#f00,color:#fff style id14 fill:#0f0,color:#fff style id15 fill:#000,color:#fff style id16 fill:#0f0,color:#fff style id17 fill:#f00,color:#fff style id18 fill:#0f0,color:#fff id11 --> id10 id11 --> id12 id13 --> id11 id13 --> id14 id15 --> id13 id15 --> id17 id17 --> id16 id17 --> id18 end situation --> single0 single0 --> sd[same direction] ```