想要修改listnode之间的连接关系得修改next的值!!!,因为next中存储的才是邻接关系,并且next是在listnode中的
eg
head2.next = head2.next.next;
下面这行代码只是对于head2的引用关系进行了更改,并未改变链表结构!!!
head2 = head2.next.next;
总结代码如下
package z20190308;
import java.util.*;
public class lianbiao1 {
public static class listnode{
int value;
listnode next;
listnode(int a){
value = a;
next = null;
}
}
public static void main(String argc[]) {
int i;
listnode head1 = new listnode(1);
listnode copy = head1;
listnode copy1 = head1;
listnode head2 = head1;
head1.value = 1;
//向链表中新增元素
for(i = 0 ; i < 30;i ++)
{
listnode temp = new listnode(i + 2);
//上面这一行代码!!!新建一个listnode再赋值给next!!!
head1.next = temp;
head1= head1.next;
}
for(i = 0;i < 20;i ++)
{
System.out.println(copy.value);
copy = copy.next;
}
//删除链表中某个元素:修改listnode节点中next的值!!!
head2.next = head2.next.next;
//head2 = head2.next.next;
//上面那行注释只是对head2的值进行了改变!!!
//链表结构中的next值代表了连接关系!!!
for(i = 0;i < 20;i ++)
{
System.out.println(copy1.value);
copy1 = copy1.next;
}
}
}