1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
public class LinkedList { Node head = null;
//头插 public void headAdd(Object val){ Node n = new Node(head,val); head = n; }
//尾插 public void tailAdd(Object val){ Node n = new Node(null,val); Node p = head; while (p.next != null){ p = p.next; } p.next = n; }
//链表逆序,时间复杂度O(n),空间复杂度O(1) public void reverseList(){ Node t = null, p = head; while (p != null){ Node next = p.next; p.next = t; t = p; p = next; } head = t; } class Node{ Node next; Object value;
public Node(Node next, Object value) { this.next = next; this.value = value; } }
@Override public String toString() { String str = ""; Node p = head; while (p != null){ str +=p.value; p = p.next; } return str; }
public static void main(String[] args){ LinkedList linkedList = new LinkedList(); for (int i = 0; i < 10; i++) { linkedList.headAdd(i); } System.out.println(linkedList); linkedList.reverseList(); System.out.println(linkedList);
for (int i = 0; i < 10; i++) { linkedList.tailAdd(i); } System.out.println(linkedList); linkedList.reverseList(); System.out.println(linkedList);
} }
|
近期评论