java - 如何在 Java 中将元素插入到循环单链表中?
问题描述
我正在查看以下用于在循环链表开头插入节点的代码,但我仍然对这样做的逻辑感到非常困惑。我了解如果列表为空的部分,您可以将新节点等同于列表的头部,但我真的不明白所有节点是如何“移动”的(我知道这不是链表的工作方式,但是可以这么说),以便为新节点留出空间以及为什么需要新的动态节点。信用:https ://www.geeksforgeeks.org/circular-singly-linked-list-insertion/
static Node addBegin(Node last, int data)
{
if (last == null)
return addToEmpty(last, data);
// Creating a node dynamically
Node temp = new Node();
// Assigning the data
temp.data = data;
// Adjusting the links
temp.next = last.next;
last.next = temp;
return last;
}
解决方案
节点不是“四处移动”,想象它像一条链(用于锁定大门的那个),你去拆卸链的一个节点,插入一个新节点并将新节点(temp)与旧节点链接) 连接到拆开的节点(temp.next=last.next),然后将链的旧节点(代码中的“last”)与新插入的节点(temp)链接起来(last.next=temp)
推荐阅读
- sql - 聚合查询,使用数组聚合函数但分隔列中的值之一
- c - 分配给指针时,什么类型的转换地址呢?
- python - 从数据中绘图,但仅在 python (matplotlib) 中满足特定标准或值时
- r - 无法在 R 中按预期替换所有内容
- java - 如何使用eclipse开发gradle应用程序
- javascript - 获取 HTML 插槽中的修改元素
- firebase - Firebase 在 iOS 上显示错误的数据
- c - Vulkan vkGetPhysicalDeviceSurfaceFormatsKHR 导致在 Windows.Graphics.dll 中引发异常
- r - 如何从不同的数据框中获取某些列的平均值?
- partitioning - Athena 中的按日期分区列