思路: 遍历原有的链表每次都把旧链表头去掉,然后放到新链表里面当头。遍历到最后新链表就是旧链表的倒序。
public class LinkedTest {
public static void main(String[] args) {
//init数据
Node node1 = new Node(1);
Node node2 = new Node(2);
Node node3 = new Node(3);
Node node4 = new Node(4);
node1.setNext(node2);
node2.setNext(node3);
node3.setNext(node4);
//倒序
Node oldli = node1;
Node newli = null;
Node oldhead = null;
while(oldli!=null){
oldhead = oldli;
oldli = oldli.getNext();
oldhead.setNext(null);
if(newli==null){
newli = oldhead;
}else{
oldhead.setNext(newli);
newli = oldhead;
}
}
//正序输出
Node temp = newli;
do{
System.out.println(temp.getNum());
} while ((temp=temp.getNext())!=null);
}
static class Node {
private Node next;
private int num;
public Node(int num) {
this.num = num;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
}
}