千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > java数据结构-双链表的删除与更新

java数据结构-双链表的删除与更新

来源:千锋教育
发布人:syq
时间: 2023-03-24 10:40:00 1679625600

  双链表(Double Link List)是一种数据结构,每个节点包含两个指针,分别指向前一个节点和后一个节点。相比于单链表,双链表可以双向遍历,删除和更新操作也更加灵活方便。

双链表的删除与更新

  下面是在Java中实现双链表的删除和更新操作的示例:

  删除操作

  双链表的删除操作需要考虑以下情况:

  待删除节点是头节点

  待删除节点是尾节点

  待删除节点是中间节点

  示例代码

public class DoublyLinkedList {

// 定义链表节点
class ListNode {
int val;
ListNode prev;
ListNode next;

ListNode(int val) {
this.val = val;
this.prev = null;
this.next = null;
}
}

private ListNode head;
private ListNode tail;

// 删除节点
public void deleteNode(ListNode node) {
if (node == head) { // 待删除节点是头节点
head = head.next;
if (head != null) {
head.prev = null;
} else {
tail = null;
}
} else if (node == tail) { // 待删除节点是尾节点
tail = tail.prev;
tail.next = null;
} else { // 待删除节点是中间节点
node.prev.next = node.next;
node.next.prev = node.prev;
}
}
}

  更新操作

  双链表的更新操作可以分为两种情况:

  更新节点的值

  将节点移动到另一个位置

  示例代码如下:

public class DoublyLinkedList {

// 定义链表节点
class ListNode {
int val;
ListNode prev;
ListNode next;

ListNode(int val) {
this.val = val;
this.prev = null;
this.next = null;
}
}

private ListNode head;
private ListNode tail;

// 删除节点
public void deleteNode(ListNode node) {
if (node == head) { // 待删除节点是头节点
head = head.next;
if (head != null) {
head.prev = null;
} else {
tail = null;
}
} else if (node == tail) { // 待删除节点是尾节点
tail = tail.prev;
tail.next = null;
} else { // 待删除节点是中间节点
node.prev.next = node.next;
node.next.prev = node.prev;
}
}
}

  以上就是在Java中实现双链表的删除和更新操作的示例代码。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT