public class MyLink<E> { private LinkNode<E> head; private static class LinkNode<E>{//使用泛型保证程序的可重用性和安全性 E data; LinkNode<E> next;//指向下一个结点的指针 } protected void finalize() throws Throwable { } //添加新的结点到尾部 public void add(E data){ LinkNode<E> newNode = new LinkNode<E>(); newNode.data = data; newNode.next = null; if(head == null){//之前的链表为空 head = newNode;//新结点即为头结点 } else{ LinkNode<E> temp = head; while(temp.next!=null){ temp = temp.next; }//找到最后一个结点 temp.next = newNode;//最后一个结点指向新结点 } } //重写toString 方便打印链表 @Override public String toString(){ if(head==null) return "Empty link"; LinkNode<E> temp = head; StringBuilder sb = new StringBuilder(); while(temp.next!=null){ sb.append(temp.data+" "); temp = temp.next; } sb.append(temp.data); return sb.toString(); } }