package demo1; public class Node { private Node next; private String value; public Node(String value){ this.value=value; } public Node getNext() { return next; } public void setNext(Node next) { this.next = next; } public String getValue() { return value; } public void setValue(String value) { this.value = value; } public static void main(String[] args) { Node head=new Node("a"); Node node1=new Node("b"); Node node2=new Node("c"); Node node3=new Node("d"); //初始化鏈表 head.setNext(node1); node1.setNext(node2); node2.setNext(node3); System.out.println("打印鏈表反轉前:"); reverse(head); //設置head的下一個元素爲null,注意:此時head已經成爲鏈表尾部元素。 head.next=null; while(node3!=null){ System.out.print(node3.getValue()); node3=node3.getNext(); if(node3!=null){ System.out.print("->"); } } } /** * 利用迭代循環到鏈表最後一個元素,而後利用nextNode.setNext(head)把最後一個元素變爲 * 第一個元素。 * * @param head */ public static void reverse(Node head){ if(head!=null){ Node nextNode=head.getNext(); if(nextNode!=null){ reverse(nextNode); nextNode.setNext(head); } } } }