今天晚上我完善了一下链表的功能,添加了两个删除功能:一个是输入字符串删除,而另一个是输入数字下标删除。
代码如下:
//删除一个节点
public boolean delete(String value){
if(head.getValue() == value){
head = head.getNext();
return true;
}
Node node = head.getNext();
Node fistnode = head;
while(node.getNext()!=null){
if(node.getValue() == value){
fistnode.setNext(fistnode.getNext().getNext());
}
fistnode = fistnode.getNext();
node = node.getNext();
}
return false;
}
public boolean delete(int index){
if(head == null||index>size()){
try {
throw new Exception("下标越界或者头结点为空,无法删除");
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
if(index == 0){
Node node = head;
head = head.getNext();
node.setNext(null);
return true;
}
int count = 0;
Node node = head;
while(count != index-1){
node = node.getNext();
count++;
}
node.setNext(node.getNext().getNext());
return true;
}
下面是测试结果:
添加了删除功能后的链表功能更加的完善了。