/**
* 反转链表
*/
public class demo1 {
public static class Node{
public int value;
public Node next;
public Node(int value){
this.value = value;
}
}
//反转单链表
public static Node reverseLinkedList1(Node head){
if (head==null||head.next==null){
return head;
}
Node pre=null;
Node next=null;
//next中间变量,过度用,最没用 最重要的是三个数 pre head(当前) -》 head后的(可能不只一个)
// 要做的事情,就是不断的储存pre,同时要保证储存的同时,不要丢掉后面的信息(也就是下面第一步做的事情)
while (head.next!=null){
//n
next=head.next; //1.将箭头去掉,首先要保存head后面的信息 next储存
head.next=pre; //2.储存完了,箭头去掉,换方向,指向储存的pre
pre=head; //3.事情做完了,依次变更pre
head=next; //4.依次变更head。进入下一次循环
}
return pre;
}
}
版权声明:本文为weixin_60054945原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。