链表节点的实现
public class ListNode {
//当前节点的值
int value;
//下一个节点的地址域
ListNode next;
public ListNode(int value) {
this.value = value;
}
}
头插法
public void headInesert(int value){
ListNode node=new ListNode(value);
if (head==null){
head=node;
}else{
node.next=head;
head=node;
}
}
尾插法
基本思路:新建一个节点,若头结点为空直接让头结点等于新节点,否则建立一个新节点tail也指向头结点,不断判断tail的下一个节点是否为空,去找最后一个节点,找到对后一个节点将node节点加进去
//尾插法
public void endInsert(int value){
//每当执行尾插法的时候需要新建一个节点
ListNode node = new ListNode(value);
//1.先判断头结点是否为空
if (head==null){
head=node;
return;
}
//2.定义临时指针去找最后一个节点
ListNode tail=head;
while (tail.next!=null){
tail=tail.next;
}
//3.最后一个节点指向新加结点
tail.next=node;
}