https://blog.youkuaiyun.com/SHENGJINLI1/article/details/83175802
java 单链表
在这里插入代码片
## LinkList.java
package link01;
class Link{
public int iData;
public double dData;
public Link next; // 重要的引用概念, 指向堆中的某个对象
public Link(int id, double dd) {
iData = id;
dData = dd;
}
public void displayLink() {
System.out.print("{" + iData + "," + dData + "}");
}
}
public class LinkList {
private Link first; // 链表头部。 引用单链表的第一个元素。
public LinkList() { // 构造行数,默认赋值null.
first = null;
}
public boolean isEmpty() { // 判断链表是否为空, 在删除链表中的某个节点前先判断。
return (first == null);
}
public void insertFirst( int id, double dd) { // 插入节点在链表的头部
Link newLink = new Link(id,dd);
newLink.next = first;
first = newLink;
}
public Link deleteFirst() { // 在链表的头部删除链表
Link temp = first;
first = first.next;
return temp;
}
public void displayList() { // 遍历链表
System.out.println("List (first-->last)");
Link current = first;
while (current != null) {
current.displayLink();
current = current.next;
}
}
public Link find(int key) { // 根据key查找出链表中的节点, 如果不存在就会遍历整个链表
Link current = first;
while ( current.iData != key ) {
if ( current.next == null)
return null;
else
current = current.next;
}
return current;
}
public Link delete(int key){ // 删除idate == key 的link。
Link current = first;
Link previous = first;
while( current.iData != key) {
if( current.next == null )
return null;
previous = current;
current = current.next;
}
if ( current == first)
first = first.next;
else
previous.next = current.next;
return current;
}
}