当检查链表中的中间节点时,我对同时循环条件在链表中的工作方式感到困惑
这是正确的代码我有找到中间节点的链表
class Node(object):
def __init__(self, data):
self.data = data
self.next = None
class linkedList(object):
def __init__(self):
self.head = None
def append(self, data):
node = Node(data)
if self.head == None:
self.head = node
temp = self.head
while temp.next:
temp = temp.next
temp.next = node
def middle(self):
first = self.head
second = self.head
while second and second.next:
second = second.next.next
first = first.next
print(first.data)
如果我将while循环更改为
while second:
或
while second.next:
我收到一个错误,上面写着
AttributeError:“非类型”对象在第24行没有属性“下一步”
我只是想知道为什么拥有第二个代码和second.next代码很重要
首先,你的append方法不起作用,并且陷入了无限的time循环中,因为你在添加第一个元素时没有退出append。正确的版本是
def append(self, data):
node = Node(data)
if self.head == None:
self.head = node
return
else:
temp = self.head
while temp.next:
temp = temp.next
temp.next = node
至于你的另一个问题,我们想找到偶数和奇数列表的循环中间,秒。下一个
覆盖奇数列表,第二个覆盖偶数列表,因为第二个指针将指向null,或者它本身将为null,如果您只使用其中一个,您将得到您描述的错误,因此您需要在while循环中同时具有这两个条件
解决方案使用两个指针。第一个一次走一步,第二个一次走两步。但是,在采取两个步骤时,有两件事需要验证:
如果你跳过一个检查,它将进入循环,但在边界条件下,它找不到下一个。举个例子:如果有4个节点,而你只在第3个节点检查second.next
,你将有second.next
为有效,你将进入而
循环,但在里面您正在直接访问second.next.next
F、 S|1--
我有一个单链表。如果我想从这个链表中删除一个已知的元素,我能做什么? 例如:节点*头;(44)节点*尾部;(39) 链接列表:44 27 59 13 45 39我们想从中删除45。得到:4427591339 我只知道从列表中删除第一个元素(如果元素(需要删除)是列表的第一个元素)。我得到了:头=头- 如何从列表中删除中间节点?
我试图从基于阉羊的双链表中删除一个元素,该列表中的节点满足返回bool的函数。由于某种原因,替换节点的前一个指针(下一个被删除)不更新,而是引用回它自己。 我的代码 测试结果
本文向大家介绍C++删除链表中间节点的方法,包括了C++删除链表中间节点的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C++删除链表中间节点的方法。分享给大家供大家参考,具体如下: 题目: 给定链表头结点head,实现删除链表的中间节点函数。 解题思路及代码: 快慢指针,快指针走两步,慢指针一步。 当快指针走到终点时,慢指针正好是链表中间节点,删除此节点即可。 链表结构定义: 算法
问题内容: 这段代码是一个表,可以选择“惰性名称”,“删除”,“显示”和“退出”。 该代码运行良好,但是我唯一的问题是如何删除节点中的所选名称 *我不知道如何删除节点。我应该在删除方法上加上什么? 问题答案: 要删除Node,您实际上需要更新它的上一个节点的位置以删除Node的位置,而剩下的Node最终将被垃圾回收。 如果要删除的节点是根节点,则只有一个问题,然后更新根节点。
我正在尝试使用(不平衡的)BST实现树集。我还希望为树中的所有节点维护一个有序的双链接列表。 链表是在2个前哨节点的帮助下维护的,一个头节点和一个尾节点。因此,要遍历链表,您需要从头节点开始,检查它的属性。 我有一个递归的方法,就像这样; 其中和设置在链表中将插入新节点的位置的边界。 我在维护节点的和属性时遇到了问题。
我有麻烦删除双向链表中的节点,程序崩溃,我不能解决这个问题。你能帮我吗?这是创建新节点,查看它们并删除它们的完整代码。 我认为这个问题与Node del的scanf()有关,但我不确定。当我只是通过或