/* 2: Node n=new Node(1); 3: n.next=null,也就是n.next=head */ digraph demo { rankdir=LR; node [shape=record]; h [shape=ellipse]; n [shape=ellipse];
a [label="{1|null}" color="red"]; h -> null; n ->a; }
接下来把这个新创建的直接的地址赋值给头指针h:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
/* 2: n=new Node(1); 3: n.next=null,也就是n.next=head 新创建的节点的地址赋值给头指针h 4: h=n; */ digraph demo { rankdir=LR node [shape=record] null h [shape=ellipse] n [shape=ellipse] a [label="{1|null}"] // h -> null n -> a h -> a [color="red"] }
然后,再次创建一个新的节点,地址赋值给引用变量n
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
/* 再次创建一个节点,并把地址赋值给指针n 5: n=new Node(2); */ digraph demo { rankdir=LR node [shape=record] h [shape=ellipse] n [shape=ellipse] n1 [label="{1|null}"] n2 [label="{2|}"] // null [shape=ellipse] // h -> null n -> n2 [color="red"] h -> n1 }
新创建的节点的地址域记录下链表的头节点的地址
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
/* 把头指针h中保存的地址赋值给新创建的节点的地址域 6: n.next=head; */ digraph demo { rankdir=LR node [shape=record] h [shape=ellipse] n [shape=ellipse] n1 [label="{1|null}"] n2 [label="{2|}"]
n -> n2 n2 -> n1 [color="red"] h -> n1 }
头指针记录新创建的节点的地址
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
/* 把头指针h中保存的地址赋值给新创建的节点的地址域 6: n.next=head 头指针保存新创建的节点的地址 7: h=n; */ digraph demo { rankdir=LR node [shape=record] h [shape=ellipse] n [shape=ellipse]