class LinkList { public Node first; //链表头结点(指针) public boolean isEmpty() { return first == null;//保持优秀的写法 } public void add(Node node) { if (isEmpty()) { first = new Node(); //第一个结点没有数据域 first.next = node; //第二个结点 } else { Node temp = first.next ; //保存上一个结点(这里是第二个结点) first.next = node; // 将新插入的结点放入到第二个结点上 node.next =temp; //将老的第二个结点放到新的第二个结点上去 } } public Node get() { return first = first.next; //返回第二个结点(有数据域的第一个结点) } } class Node { public Node next ; //每个结点保存的是下一个结点的引用和自己结点的数据域 public String data; }