JAVA 简单链表总结
七月13日
- 1.链表的生成
public class lianxi
{
public static void main(String[] args)
{
zhy m1=new zhy("第一个节点",1);
zhy m2=new zhy("第二个节点",2);
zhy m3=new zhy("第三个节点",3);
zhy m4=new zhy("第四个节点",4);
//将节点进行连接
m1.next=m2; //m1的下一个连接的是m2
m2.next=m3;
m3.next=m4;
m4.next=null;
//遍历链表
zhy m=m1;//定义一个
while(m!=null)
{
System.out.println(m);
m=m.next;
}
}
}
class zhy
{
String name;
int number;
public zhy next;
zhy(String name,int number)
{
this.name=name;
this.number=number;
}
@Override //改写toString方法,将类内容显示出来
public String toString()
{
return String.format("(%s,%s)",name,number);
}
}
- 2.节点的插入
现在我要插入对象m5
- 1.可以在最前端插入
package my;
public class lianxi
{
public static void main(String[] args)
{
zhy m1=new zhy("第一个节点",1);
zhy m2=new zhy("第二个节点",2);
zhy m3=new zhy("第三个节点",3);
zhy m4=new zhy("第四个节点",4);
zhy m5=new zhy("第五个节点",5); //新节点m5
zhy head=new zhy(" ",0);
head.next=m5;
m5.next=m1;
m1.next=m2;
m2.next=m3;
m3.next=m4;
m4.next=null;
//遍历链表
zhy m=head.next;//定义一个
while(m!=null)
{
System.out.println(m);
m=m.next;
}
}
}
class zhy
{
String name;
int number;
public zhy next;
zhy(String name,int number)
{
this.name=name;
this.number=number;
}
@Override //改写toString方法,将类内容显示出来
public String toString()
{
return String.format("(%s,%s)",name,number);
}
}
如果要在制定位置插入节点?(比如要在节点m2之后插入链表)
这就需要设计一个循环,并在循环内部添加一个判断方法。
zhy node=m1;
while(node!=null)
{
if(node.number==2)
{
m5.next=node.next; //将m5末端连接到原来m2的后面
node.next=m5; //将m2的末端接上m5
break;
}
node=node.next;
}
- 3.节点的删除
例如删除第三个节点
while(node!=null)
{
if(node.number==2) //判断条件
{
prev.next=node.next; //将node的下一个节点(也就是3)接到node的前一个节点(也就是1)的后面
break;
}
prev=node; //让prev等于node的前一个节点
node=node.next;
}