---
title:
image:
description:
tags: Leetcode, Drew
---
# 24. Swap Nodes in Pairs
```graphviz
digraph {
rankdir="LR";
node [shape=none];
edge [arrowhead=vee,headclip=false, tailclip=false]
p2p[shape=plaintext,fontcolor=red]
tmp[shape=plaintext,fontcolor=blue]
Head [label=<
<TABLE BORDER="0" CELLBORDER="1" cellspacing="0">
<TR>
<TD PORT="Val">Head</TD>
<TD PORT="Next"> </TD>
</TR>
</TABLE>>,rankdir="TB"];
A1 [label=<
<TABLE BORDER="0" CELLBORDER="1" cellspacing="0">
<TR>
<TD PORT="Val">1</TD>
<TD PORT="Next"> </TD>
</TR>
</TABLE>>];
A2 [label=<
<TABLE BORDER="0" CELLBORDER="1" cellspacing="0">
<TR>
<TD PORT="Val">2</TD>
<TD PORT="Next"> </TD>
</TR>
</TABLE>>];
A3 [label=<
<TABLE BORDER="0" CELLBORDER="1" cellspacing="0">
<TR>
<TD PORT="Val">3</TD>
<TD PORT="Next"> </TD>
</TR>
</TABLE>>];
A4 [label=<
<TABLE BORDER="0" CELLBORDER="1" cellspacing="0">
<TR>
<TD PORT="Val">4</TD>
<TD PORT="Next"> </TD>
</TR>
</TABLE>>];
A1:Next:c -> A2:w;
A2:Next:c -> A3:w;
A3:Next:c -> A4:w;
A4:Next:c -> Nil:w;
{
node [shape=record];
edge [arrowhead=vee,headclip=true, tailclip=true]
rank=same;
tmp -> A1:c;
p2p -> Head;
Head:Next:c -> A1:c;
}
}
```
---
```graphviz
digraph {
rankdir="LR";
node [shape=none];
edge [arrowhead=vee,headclip=false, tailclip=false]
p2p[shape=plaintext,fontcolor=red]
tmp[shape=plaintext,fontcolor=blue]
Head [label=<
<TABLE BORDER="0" CELLBORDER="1" cellspacing="0">
<TR>
<TD PORT="Val">Head</TD>
<TD PORT="Next"> </TD>
</TR>
</TABLE>>,rankdir="TB"];
A1 [label=<
<TABLE BORDER="0" CELLBORDER="1" cellspacing="0">
<TR>
<TD PORT="Val">1</TD>
<TD PORT="Next"> </TD>
</TR>
</TABLE>>];
A2 [label=<
<TABLE BORDER="0" CELLBORDER="1" cellspacing="0">
<TR>
<TD PORT="Val">2</TD>
<TD PORT="Next"> </TD>
</TR>
</TABLE>>];
A3 [label=<
<TABLE BORDER="0" CELLBORDER="1" cellspacing="0">
<TR>
<TD PORT="Val">3</TD>
<TD PORT="Next"> </TD>
</TR>
</TABLE>>];
A4 [label=<
<TABLE BORDER="0" CELLBORDER="1" cellspacing="0">
<TR>
<TD PORT="Val">4</TD>
<TD PORT="Next"> </TD>
</TR>
</TABLE>>];
tmp -> A1:w;
A1:Next:c -> A2:w;
A2:Next:c -> A3:w;
A3:Next:c -> A4:w;
A4:Next:c -> Nil:w;
{
node [shape=record];
edge [arrowhead=vee,headclip=true, tailclip=true]
rank=same;
//tmp -> A1;
p2p -> Head;
Head:Next:c -> A2:c;
}
}
```
---
```graphviz
digraph {
rankdir="LR";
node [shape=none];
edge [arrowhead=vee,headclip=false, tailclip=false]
p2p[shape=plaintext,fontcolor=red]
tmp[shape=plaintext,fontcolor=blue]
Head [label=<
<TABLE BORDER="0" CELLBORDER="1" cellspacing="0">
<TR>
<TD PORT="Val">Head</TD>
<TD PORT="Next"> </TD>
</TR>
</TABLE>>,rankdir="TB"];
A1 [label=<
<TABLE BORDER="0" CELLBORDER="1" cellspacing="0">
<TR>
<TD PORT="Val">1</TD>
<TD PORT="Next"> </TD>
</TR>
</TABLE>>];
A2 [label=<
<TABLE BORDER="0" CELLBORDER="1" cellspacing="0">
<TR>
<TD PORT="Val">2</TD>
<TD PORT="Next"> </TD>
</TR>
</TABLE>>];
A3 [label=<
<TABLE BORDER="0" CELLBORDER="1" cellspacing="0">
<TR>
<TD PORT="Val">3</TD>
<TD PORT="Next"> </TD>
</TR>
</TABLE>>];
A4 [label=<
<TABLE BORDER="0" CELLBORDER="1" cellspacing="0">
<TR>
<TD PORT="Val">4</TD>
<TD PORT="Next"> </TD>
</TR>
</TABLE>>];
tmp -> A1:w;
A1:Next:c -> A3:w;
A2:Next:c -> A3:w;
A3:Next:c -> A4:w;
A4:Next:c -> Nil:w;
{
node [shape=record];
edge [arrowhead=vee,headclip=true, tailclip=true]
rank=same;
//tmp -> A1;
p2p -> Head;
Head:Next:c -> A2:c;
}
}
```
---
```graphviz
digraph {
rankdir="LR";
node [shape=none];
edge [arrowhead=vee,headclip=false, tailclip=false]
p2p[shape=plaintext,fontcolor=red]
tmp[shape=plaintext,fontcolor=blue]
Head [label=<
<TABLE BORDER="0" CELLBORDER="1" cellspacing="0">
<TR>
<TD PORT="Val">Head</TD>
<TD PORT="Next"> </TD>
</TR>
</TABLE>>,rankdir="TB"];
A1 [label=<
<TABLE BORDER="0" CELLBORDER="1" cellspacing="0">
<TR>
<TD PORT="Val">1</TD>
<TD PORT="Next"> </TD>
</TR>
</TABLE>>];
A2 [label=<
<TABLE BORDER="0" CELLBORDER="1" cellspacing="0">
<TR>
<TD PORT="Val">2</TD>
<TD PORT="Next"> </TD>
</TR>
</TABLE>>];
A3 [label=<
<TABLE BORDER="0" CELLBORDER="1" cellspacing="0">
<TR>
<TD PORT="Val">3</TD>
<TD PORT="Next"> </TD>
</TR>
</TABLE>>];
A4 [label=<
<TABLE BORDER="0" CELLBORDER="1" cellspacing="0">
<TR>
<TD PORT="Val">4</TD>
<TD PORT="Next"> </TD>
</TR>
</TABLE>>];
tmp -> A1:w;
A1:Next:c -> A3:w;
A2:Next:c -> A1:w;
A3:Next:c -> A4:w;
A4:Next:c -> Nil:w;
{
node [shape=record];
edge [arrowhead=vee,headclip=true, tailclip=true]
rank=same;
//tmp -> A1;
p2p -> Head;
Head:Next:c -> A2:c;
}
}
```