/** * 反转链表 */ 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; } }