问题标签 [singly-linked-list]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
7957 浏览

java - 链表 - 在当前节点之前插入一个节点

我正在尝试研究一种方法,该方法将在链表中的当前节点之前插入传递给它的节点。它有3个条件。对于这个实现,不能有任何头节点(只有对列表中第一个节点的引用),我不能再添加任何变量。

  1. 如果列表为空,则将传递的节点设置为列表中的第一个节点。
  2. 如果当前节点在列表的前面。如果是,则将传递的节点的 next 设置为当前节点,并将第一个节点设置为传递的节点以将其移动到前面。
  3. 如果列表不为空且当前不在最前面,则遍历列表,直到本地节点等于列表的当前节点。然后我执行与 2 中相同的指令。

这是我的代码。

我让它适用于我的 [1] 和 [2] 条件。但是我的 [3](测试 insertBeforeCurrentNode())工作不正常。我已经设置了打印语句,并且我确定我的电流在某处被重置,但我无法弄清楚在哪里可以使用一些指导或解决方案。

[1] 和 [2] 的输出是正确的。[3] 的输出应为

[3] 列表包含 26 个节点:zxvtrpnljhfdbcegikmoq suwya

感谢您提前提供任何帮助。

0 投票
3 回答
6919 浏览

java - 如何删除单链表中的当前节点?

我正在尝试完成一个程序,但我被困在了一个地方。我的 deleteCurrentNode 方法仅部分有效。出于某种原因,当我尝试遍历链表以查找 currentNode 时,它​​永远找不到它。有人可以向我提供如何让它工作的提示吗?

该方法本身检查 4 个条件:

  1. 如果列表为空。
  2. 如果 currentNode 为空。
  3. 如果 currentNode 是列表中的第一个节点。
  4. 如果 currentNode 在列表中的某个位置。

其他条件有效(据我所知)。4 问题出在哪里。

[4] 应与 [2] 相同(列表包含 0 个节点。)

注意:不能使用我已经拥有的任何更多变量/方法/等。而且我不能使用头节点。

0 投票
3 回答
860 浏览

java - 反向链表 - 空指针异常

我正在编写一个 Java 函数来就地反转链表。我是 Java 新手,未能成功调试以下函数中的错误。IDE 返回一个我似乎无法弄清楚的NullPointerException 。任何帮助将非常感激。

为了测试,我已经用 8 个链接节点初始化了一个链接列表。在上面的函数中,我试图在每个节点之间交换下一个指针并reversedLinkedList沿着链表移动指针。

编辑:有些人建议我使用调试器来确定NullPointerException发生的位置。我已经这样做了。它发生在循环reversedLinkedList = reversedLinkedList.getNext();的第二次迭代的行中while

我用 8 个指针初始化了链表以进行测试。循环,而while不是去第二个节点,而是看到一个null指针。它可能与temp变量有关,但我不确定。

0 投票
3 回答
1579 浏览

c - C中的字符串链表

我是 C 中链表的新手,我遇到的问题是我正在尝试创建一个字符串的链表,但是当我尝试打印该列表时,它会从两个不同的字符串中打印第一个字符。我想我弄乱了一些指针。请问有什么帮助吗?这是我的代码...

0 投票
2 回答
1314 浏览

c - 从单链表和双链表中删除随机节点

我很难想出从双链表和单链表中删除某些节点的逻辑。我从帮助中在线查看,但我找不到一个简单的例子。这是我所拥有的:


双链删除。dCurrent是我们要删除的节点。


这是我所拥有的单链表。同样,sCurrent是要删除的节点。和sPrev = sCurrent->prev


问题是,在我从两个列表中删除一组随机节点后,双向链表从头到尾正确显示,但不是从尾到头显示。单链表也不能正确显示。

0 投票
1 回答
678 浏览

class - 使用类的单链表问题

我正在制作一个使用多个文件和类的单链表程序。

我必须有一个 Node.h、LinkedList.h、Node.cpp、LinkedList.cpp 和一个 main.cpp

我遇到了其他问题,但现在我的 printList() 函数只打印“List()”而不是“List(node 1, node2, etc...)”

这是我的代码:(我无法更改 Node.h 和 LinkedList.h 文件)

节点.h:

链表.h:

节点.cpp

链表.cpp

主文件

如果你能帮我找出我的问题,我将不胜感激。

0 投票
1 回答
247 浏览

class - 使用类打印单链表

我正在制作一个使用多个文件和类的单链表程序。

我必须有一个 Node.h、LinkedList.h、Node.cpp、LinkedList.cpp 和一个 main.cpp

我遇到了其他问题,但现在我的 printList() 函数只打印“List()”而不是“List(node 1, node2, etc...)”

我认为我的插入可能是问题,因为我的 searchNode() 也不能正常工作,它总是说找不到节点。

这是我的代码:(我无法更改 Node.h 和 LinkedList.h 文件)

节点.h:

链表.h:

节点.cpp

链表.cpp

主文件

如果你能帮我找出我的问题,我将不胜感激。

0 投票
9 回答
4888 浏览

java - 链表的动态实现

我的教科书有这个代码来动态创建链接列表。问题是,当程序逐行执行时,它将变量“info”定义为“int”类型,然后将变量“next”定义为 Nodetype。

这里实际发生了什么?

这是否意味着变量“下一个”将包含 -

  1. 构造函数“节点类型”
  2. 信息
  3. 节点类型“next”,其中“next”将再次具有所有 1、2、3,然后 3 将再次具有 1、2、3 ......等等......直到无穷大?

我真的很生气,因为我无法理解它是如何工作的,有人可以轻松解释一下吗?

0 投票
3 回答
568 浏览

c - 递归反向链表 - 不同的函数签名

有很多帖子可能有相同的问题,但问题是它必须由

三个空格必须填写 前两个很简单

分别

一种方法可能是向下并反转指针,但在这种情况下,即使在回溯之后,我如何才能保持尾部完好无损?有可能吗?

0 投票
13 回答
35246 浏览

c# - 在 C# 中反转单链表

我正在尝试反转链接列表。这是我想出的代码:

它运作良好。想知道是否可以避免创建新节点。想对此提出建议。