1 package my_basic.class_3; 2 3 public class Code_07_ReverseList { 4 public static class Node{ 5 private int value; 6 private Node next; 7 8 public Node(int value) { 9 super(); 10 this.value = value; 11 } 12 } 13 14 /*反转单向链表*/ 15 public static Node reverseList(Node head) { 16 Node next = null; 17 Node pre = null; 18 while (head != null) { 19 next = head.next; 20 head.next = pre; 21 pre = head; 22 head = next; 23 } 24 return pre; 25 } 26 27 public static class DoubleNode{ 28 private int value; 29 private DoubleNode next; 30 private DoubleNode last; 31 public DoubleNode(int value) { 32 super(); 33 this.value = value; 34 } 35 } 36 37 public static DoubleNode reverseList(DoubleNode head) { 38 DoubleNode next = null; 39 DoubleNode pre = null; 40 while (head != null) { 41 next =head.next; 42 head.next = pre; 43 head.last = next; 44 pre = head; 45 head = next; 46 } 47 return pre; 48 } 49 50 public static void printLinkedList(Node head) { 51 System.out.println("单链表:"); 52 while(head != null) { 53 System.out.print(head.value + " "); 54 head = head.next; 55 } 56 System.out.println(); 57 } 58 59 public static void printDoubleLinkedList(DoubleNode head) { 60 System.out.println("双向单链表:"); 61 DoubleNode end = null; 62 while (head != null) { 63 System.out.print(head.value + " "); 64 end = head; 65 head = head.next; 66 } 67 System.out.println("|"); 68 while (end != null) { 69 System.out.print(end.value + " "); 70 end = end.last; 71 } 72 System.out.println(); 73 74 } 75 76 public static void main(String[] args) { 77 Node head1 = new Node(1); 78 head1.next = new Node(2); 79 head1.next.next = new Node(3); 80 printLinkedList(head1); 81 head1 = reverseList(head1); 82 printLinkedList(head1); 83 84 DoubleNode head2 = new DoubleNode(1); 85 head2.next = new DoubleNode(2); 86 head2.next.last = head2; 87 head2.next.next = new DoubleNode(3); 88 head2.next.next.last = head2.next; 89 head2.next.next.next = new DoubleNode(4); 90 head2.next.next.next.last = head2.next.next; 91 printDoubleLinkedList(head2); 92 printDoubleLinkedList(reverseList(head2)); 93 94 } 95 96 }
反转单链表和双向链表
猜你喜欢
转载自www.cnblogs.com/lihuazhu/p/10842645.html
今日推荐
周排行