public class LinkedList {
Node header;
// 伪头
Node dummy;
public LinkedList(){
dummy = new Node(Integer.MAX_VALUE);
header = dummy;
}
public void add(int v){
Node node = new Node(v);
header.next = node;
header = node;
}
public void print(){
Node h = dummy.next;
while (h != null){
System.out.println(h.v);
h = h.next;
}
}
public void reverse(){
Node dummyHeader = new Node(Integer.MAX_VALUE);
Node p = this.dummy.next;
while (p != null){
Node current = p;
p = p.next;
Node other = dummyHeader.next;
dummyHeader.next = current;
current.next = other;
}
dummy = dummyHeader;
}
public static void main(String[] args) {
LinkedList list = new LinkedList();
for (int i = 1; i <= 5 ; i++) {
list.add(i);
}
list.print();
System.out.println("----------");
list.reverse();
list.print();
}
class Node{
int v;
Node next;
public Node(int v){
this.v = v;
}
}
}
顺序建立链表后,反转链表
于 2023-08-21 17:56:51 首次发布