public class Test{
public static void main(String[] args){
//初始化链表
Node head = new Node(0);
Node node1 = new Node(1);
Node node2 = new Node(2);
Node node3 = new Node(3);
head.setNext(node1);
node1.setNext(node2);
node2.setNext(node3);
//打印链表
Node n = head;
while(n != null){
System.out.print(n.getData + " ");
n = n.getNext();
}
//反转链表
Node headRe = reverseNode(head);
//打印反转链表
Node m = headRe;
while(m != null){
System.out.print(m.getData + " ");
m = m.getNext();
}
}
public static Node reverseNode(Node head){
if(head == null) return;
Node pre = head;//标记为上一个结点
Node cur = head.getNext();//当前结点
Node tem = null;//下一个结点
while(cur != null){
tem = cur.getNext();
cur.setNext(pre);//反转操作
//指针下移
pre = cur;
cur = tem;
}
//最后将原链表的头节点的指针域置为null
head.setNext(null);
return pre;
}
}
public class Node(){
private int data; //链表结点数据
private Node next; //链表结点指针
public Node(int data){
this.data = data;
}
public Node getNext(){
return next
}
public void setNext(Node next){
this.next = next;
}
public int getData(){
return data;
}
public void setData(int data){
this.data = data;
}
}