啥也不多少,原理都一样,只是实现的方式不一样而已,原理介绍请自行百度百科百科百科-单链表
分析:
数据的内容我们这边将存储整型 定义一个int 型的data
对于Java 下一个节点的引用类型就是该节点自己,即可将类定义如下:
public class Node{
Node next = null;
int data
}
public class MyList{
Node head = null;
public class Node {
Node next = null
int data ;
}
// 增加节点 从尾部开始插入
public void addNode(int data){
// 首先判断该链表是否存在元素
Node newNode = new Node();
if(head == null )// 没有元素
{
node.head = newNode;
}
else{
// 链表中存在节点,遍历找到最后的节点(尾部插入)
Node tmp = head;//不修改头节点地址
while(tmp.next != null )
tmp = tmp.next
}
//找到尾部节点next为null ,将该节点地址赋值在最后一个节点next位置
tmp.next = newNode ;
}
//删除节点 传入索引值
public boolean deleteNode(int index){
// 首先判断待删除的节点是否存在
if(index > length || index < 0)
return -1;
if (index == 1) {
head = head.next;
return true;
}
int i = 1;
Node preNode = head;
Node curNode = preNode.next;
while (curNode != null) {
if (i == index) {
preNode.next = curNode.next;
return true;
}
preNode = curNode;
curNode = curNode.next;
i++;
}
return false;
}
public int length(){
int i = 0;
Node tmp = head;
if(head == null) return 0;
while(tmp.next != null)
{
tmp = tmp.next;
i++;
}
return i;
}
}