目的:向一个链表的头部增加节点,实现的思路:新建一个新的节点,让新节点node的next等于head;然后在更新head的位置:让node等于head。
(没有尾节点的版本)
public void addHead(T value) {
Node<T> node =new Node<>(value);
//新节点的next=head
node.next=head;
//更新新头节点位置
head=node;
}
如果链表为一个节点或者空链表,也适用
时间复杂度O(n):因为插入头节点之后后边的节点后需要向后移动一位。
(带尾节点的版本)
public void addHead(T value) {
Node<T> node =new Node<>(value);
if(head==null && tail==null){
head=node;
tail=node;
}else {
//新节点的next=head
node.next=head;
//更新新头节点位置,不用更新尾节点的位置
head=node;
}
}
时间复杂度O(n)