class link{ class node {} //外部类link,内部类node
public void insertNode(int index, String str){ //外部类link的函数insertNode()
node newnode = new node(str); //生成新节点
node tmp ; //成生一个临时节点
tmp = head; //让临时节点 = 头节点
for(int i =0 ; i < n-1; i++){
tmp =tmp.next; //找到要插入的职位的前一节点
}
newnode.next= tmp.next; //将新节点插入
tmp.next=newnode;
System.out.println();
tmp.print();
}
}
测试:本来单向链打印出来是:A B C D E F, 现在 insertNode(4,“*”);结果为:A B C * D E F
问题:我确实就是想要这个结果,网上抄来的代码确实可以用,但是不理解为什么能插入 * ?
我认为插入*后,打印原链表还是head(A)->B->C->D->E->F,感觉原链表不该有变化, tmp插入后不应该是C(tmp)-> * ->D(tmp.next)->E->F,原链表的中B 并没有连上tmp啊,为什么输出的结果里有* 呢。我感觉C 还是指向D才对。
菜鸟不太理解单向链,问的问题比较奇怪,但是真的不明白啊。。。。求解释 T.T