114得票36回答
如何使用仅两个指针反转单向链表?

我想知道是否存在一种逻辑可以仅使用两个指针来反转单链表。以下方法使用三个指针,分别为p、q和r,用于反转单链表:struct node { int data; struct node *link; }; void reverse() { struct node *p ...

88得票27回答
面试问题:如何在不创建新节点的情况下合并两个已排序的单链表。

这是一道面试笔试中提出的编程问题。 已有两个单向链表,它们已经有序,你需要将它们合并,并返回新链表的头节点,而且不能创建任何额外的节点。返回的链表也应该是有序的。 方法签名如下: Node MergeLists(Node list1, Node list2); Node类如下:...

50得票5回答
Java - 返回一个值会打破循环吗?

我正在编写一些代码,基本上遵循以下格式:public static boolean isIncluded(E element) { Node<E> c = head; while (c != null) { if (cursor.getElement...

36得票16回答
如何在单向链表中检测循环的开始?

有没有办法在链表中使用不超过两个指针找出循环的起点?我不想访问每个节点并将其标记为已访问并报告已经访问过的第一个节点。还有其他方法吗?

33得票26回答
Java反转单向链表

有人能告诉我为什么我的代码不起作用吗?我想在Java中反转一个单向链表:这是该方法(不正确工作的方法):public void reverseList(){ Node before = null; Node tmp = head; Node next = tmp.nex...

31得票13回答
在C#中反转单链表

我正在尝试反转一个链表。这是我想到的代码: public static void Reverse(ref Node root) { Node tmp = root; Node nroot = null; Node prev = null; w...

31得票2回答
Python中是否有预定义的链表库?

我知道在C++中已经存在了这个功能 #include <list> 现在我很好奇Python是否也有这个功能。

29得票9回答
单链表和双链表节点删除的时间复杂度

为什么双向链表中节点删除的时间复杂度(O(1))比单向链表中的节点删除时间复杂度(O(n))更快呢?

24得票9回答
JavaScript中反转链表的策略

我刚刚在一道简单的面试问题中挣扎:请反转一个单链表。 虽然我没能及时提供可行的答案来挽救这个面试,但我事后能够想出一个解决方案。 我的解决方案正确吗?如何用大O表示法分析它?有更有效的方法来反转单链表吗?// reverse a linked list var reverseLinked...

23得票13回答
如何反转一个链表?

考虑如下: Node reverse(Node head) { Node previous = null; Node current = head; Node forward; while (current != null) { forward...