目的:删除一个链表中的末尾节点。
实现思路:新建一个指向头节点的节点。遍历循环链表,直到找到链表尾节点,让新建的节点的next为空,尾节点的value为null,再把新建的节点更新至尾节点的位置。
public void removeTail() {
if(head==null){//链表为空
return;
}
else if(size==1){//只有一个节点
head.value=null;
head=null;
tail=null;
}else {//一般情况
Node<T> p=head;
for(;p.next!=tail;p=p.next){
}
p.next=null;
tail.value=null;
tail=p;
}
}
时间复杂度为O(n):遍历链表去寻找尾节点