2 回答

TA贡献1878条经验 获得超4个赞
对于初学者,您的 append 方法不起作用,并且会陷入无限的 while 循环,因为您在添加第一个元素时不会退出 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
至于您的另一个问题,我们希望找到偶数和奇数列表的循环中间,second.next覆盖奇数列表情况和second覆盖偶数列表情况,因为第二个指针将指向空值,或者它将本身为 null ,如果你只使用其中一个,你会得到你描述的错误,因此你需要在 while 循环中同时拥有这两个条件

TA贡献1827条经验 获得超8个赞
该解决方案通过使用两个指针来工作。第一个每次走 1 步,第二步一次走 2 步。但是,在采取 2 个步骤时,需要验证两件事:
有一个有效的下一步
在上面提到的下一步之后有一个步骤
如果您跳过一个检查,它将进入循环,但在边界条件下它找不到下一个。举例说明:如果有 4 个节点并且您只second.next
在第 3 个节点处检查,那么您将拥有second.next
有效并且您将进入while
循环但在其中您可以直接访问second.next.next
F,S | 1 --> 2 --> 3 --> 4 --> 无
添加回答
举报