1. 程式人生 > >遞迴實現反轉連結串列(java java java)

遞迴實現反轉連結串列(java java java)

package reseverList;

public class test {
		public static void main(String[] args) {
			Node  head = readyNode();
			Node tempNode = head;
			while(tempNode != null){
				System.out.println(tempNode.data);
				tempNode = tempNode.next;
			}
			Node  ReverserHead =reverseLinkedList(head);
			Node ReverserTempNode = ReverserHead;
			System.out.println("==============分割線============");
			while(ReverserTempNode != null){
				System.out.println(ReverserTempNode.data);
				ReverserTempNode = ReverserTempNode.next;
			}
			
			
		}
		


static class Node {
				Integer data;
			    Node next;
			}
		
static Node readyNode() {
		    Node linkNode1 = new Node();
		    linkNode1.data = 1;
		    Node linkNode2 = new Node();
		    linkNode2.data = 2;
		    Node linkNode3 = new Node();
		    linkNode3.data = 3;
		    Node linkNode4 = new Node();
		    linkNode4.data = 4;
		    Node linkNode5 = new Node();
		    linkNode5.data = 5;
		    Node linkNode6 = new Node();
		    linkNode6.data = 6;
		    linkNode1.next = linkNode2;
		    linkNode2.next = linkNode3;
		    linkNode3.next = linkNode4;
		    linkNode4.next = linkNode5;
		    linkNode5.next = linkNode6;
		    return linkNode1;
		}
	
static Node reverseLinkedList(Node node) {
    if (node == null || node.next == null) {
        return node;
    } else {
        Node headNode = reverseLinkedList(node.next);
        node.next.next = node;
        node.next = null;
        return headNode;
    }
}

	
}