本文共 538 字,大约阅读时间需要 1 分钟。
删除单向链表中间节点
实现一种算法,删除单向链表中间的某个节点(即不是第一个或最后一个节点),假定你只能访问该节点。
输入:单向链表 a->b->c->d->e->f
中的节点 c
结果:该链表变为 a->b->d->e->f
直接删除当前结点,实际上操作的是下一个结点。我们将当前结点的值赋值给下一个结点的值,然后将当前结点的下一个结点指向下一个结点的下一个结点。
public void deleteNode(ListNode node) { // 将当前节点的值赋值给下一个节点的值 node.val = node.next.val; // 将当前节点的下一个节点指向下一个节点的下一个节点 node.next = node.next.next;}
node.val = node.next.val
将当前节点的值赋值给下一个节点的值,这样可以确保数据不丢失。node.next = node.next.next
将当前节点的下一个节点指向下一个节点的下一个节点,这样可以直接删除当前节点。这是一个简单高效的方法,能够在O(1)时间复杂度内完成删除操作。
转载地址:http://rnjwz.baihongyu.com/