1.节点类
public class Node {
//节点中的数据
private int data;
//下一个指向节点
public Node next=null;
public Node(int data){
this.data=data;
}
public void showData(){
System.out.println(data);
}
}
2 list测试类
public class ListTest {
//初始节点为空
Node node = null;
// 从头添加一个节点
public void add(int data) {
Node p = new Node(data);
p.next = node;
node = p;
}
// 在指定位置插入节点
public void addIndex(int index, int data) {
Node p = node;
Node q = new Node(data);
while (index != 1) {
p = p.next;
index--;
}
q.next = p.next;
p.next = q;
}
//遍历输出所有节点数据
public void showAll() {
Node p = node;
while (p != null) {
p.showData();
p = p.next;
}
System.out.println();
}
/** 链表反向*/
public void reverse() {
Node p = node;
Node q = null;
Node pr = null;
while (p != null) {
pr = p.next;
p.next = q;
q = p;
p = pr;
}
node = q;
}
public static void main(String[] args) {
ListTest listTest = new ListTest();
//向链表添加元素1-10
int i = 10;
while (i > 0) {
listTest.add(i);
i--;
}
System.out.println("before:");
listTest.showAll();
listTest.reverse();
System.out.println("after:");
listTest.showAll();
}
}
输出结果:
before:
1 2 3 4 5 6 7 8 9 10
after:
10 9 8 7 6 5 4 3 2 1