应是这样
public void insert(long key){
Link node = new Link(key);
//若为空直接插入
if(first == null){
first = node;
}else{
Link current = first;
Link pre = first;
//找到比key大的节点current
while (current != null && current.dData < key){
pre = current;
current = current.next;
}
//插入节点
// current > node 所以 node.net = current
node.next = current;
// pre < node 所以 pre.next = node
// 特殊情况,当是最小的时候,需要改下first节点
if(current == first){
first = node;
}else{
pre.next = node;
}
}
}
你想问什么呢?不会写insert吗?
那你的问题 是什么?
这里有一段代码,你可以参考一下
//按照id的大小添加数据
public void addBySequence(NodeDemo1 node) {
NodeDemo1 temp = head;
if(temp.next == null) {
temp.next = node;
} else {
while (temp.next != null) {
if (temp.id == node.id) {
System.out.println("添加错误,序号已经存在");
} else if (temp.id < node.id && node.id < temp.next.id) {
node.next = temp.next;
temp.next = node;
temp = temp.next;
return;
}
temp = temp.next;
}
if (temp.id == node.id) {
System.out.println("添加错误,序号已经存在");
} else {
temp.next = node;
}
}
}
需要补全insert()的代码吗?
public void insert(long key) {
Link temp = first;
first = new Link(key);
first.next = temp;
}