单向链表的反转,需要注意调用时候,node的节点是需要抓住返回的链表,
//单链表反转
public class Code01_ReverseList {
public static class Node{
public int value;
public Node next;
public Node(int value) {
this.value = value;
}
}
public static Node reverseLinkedList(Node head){
Node pre = null;
Node next = null;
while (head != null){
//先让next等于当前节点的下一个
next = head.next;
//然后让当前节点next指向空,也就是pre
head.next = pre;
//然后让pre等于当前节点
pre = head;
//最后让head走向下一个节点 ,就开始下一次循环的操作了
head = next;
}
return pre;
}
public static void main(String[] args) {
Node node1 = new Node(1);
node1.next = new Node(2);
node1.next.next = new Node(3);
node1 = reverseLinkedList(node1);
while (node1 != null){
System.out.print(node1.value+" ");
node1 = node1.next;
}
System.out.println();
}
}