首先定义一个链表,采用头插:
我们要将他反转过来,已知一个头结点,之后我们需要在定义两个结点,为什么是两个不是一个呢,原因如下:
初始状态:
我们知道,链表要反转的话,第二个几点就会指向第一个结点
故我们需要多两个结点来操作
这样当我们操作第2个结点指向第一个结点的时候,就不会发生错误了。
代码:
public static void main(String[] args) {
int arr[]={1,2,34,5,8,65};
Node link=new Node();
for(int i:arr){
Node x=new Node();
x.value=i;
x.next=link;
link=x;
}
System.out.println(link.toString());
if(link==null||link.next==null){
link=link;
//不变
}else {
Node link1 = null;
Node link2 = null;
while (link != null) {
link2 = link.next;
link.next = link1;
link1 = link;
link = link2;
}
link=link1;
}
System.out.println(link.toString());
}
结果:
版权声明:本文为yyswit原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。