标签:Node 03 结点 08 head next frontNode 2021 节点
简单单向链表(Java实现)
刚开学习Java,偶尔分享自己所学。一来希望自己能够更加深刻地理解所学内容,二来也希望和大家认真分享一下自己的理解,希望能够一起学习,一起进步,开心每一天。
单链表
单链表的实现是链表结构中较为简单的,在一个单链表的结点中分为两个部分,一个部分保存一个结点的信息,另一个部分用来保存一个地址(下一个结点的地址)。
图中head是头节点,tail是尾节点,蓝色显示数据流,红色显示指向。
遍历
单链表只可向一个方向遍历,一般查找一个节点的时候需要从第一个节点开始访问,一直访问到需要的位置。
将头节点的地址给与一个临时变量,使用变量打印节点信息,而后将结点的Next值回刷给临时变量,直到Next值为空,结束遍历。
插入
插入一个节点,对于单链表,提供在链尾插入,只需要将当前尾结点的Next值刷为插入的新节点地址,然后将原尾结点指向新节点即可。
删除
删除一个节点,我们将该节点的前一个节点的next指向该节点的下一个节点。
代码实现:
class Node{
int value;//节点信息
Node next;//下一个结点位置信息
}
class Link {
Node head;//头结点
Node tail;//尾结点
public void travel(){//遍历
Node tmp = head;
while (tmp != null) {
System.out.println(tmp.value);
tmp = tmp.next;
}
}
public void add(int val){//添加
Node newNode = new Node();
newNode.value = val;
if (head == null){//链表空时
head = newNode;
tail = newNode;
} else {//链表非空时
tail.next = newNode;
tail = newNode;
}
}
public boolean remove(int val){//删除
Node frontNode = head;
while (frontNode.next != null) {
if (head.value == val){//判断头节点是否为要删除的元素
head = frontNode.next;
return true;
}
if (frontNode.next.value == val) {//定位到删除结点的位置
frontNode.next = frontNode.next.next;//删除结点
return true;
}
frontNode = frontNode.next;
}
return false;
}
}
标签:Node,03,结点,08,head,next,frontNode,2021,节点 来源: https://blog.csdn.net/mtw14580/article/details/119355884
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。