遞迴實現反轉連結串列(java java java)
阿新 • • 發佈:2018-12-17
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; } } }