找到倒数第k个节点

问题描述 投票:0回答:1

我将以下函数写入

find kth node from the end.
但是,一个隐藏的测试用例失败了。 请让我知道下面的代码有什么问题。

def find_kth_from_end(l, k):
    slow = l.head
    fast = l.head
    for _ in range(k):
        fast = fast.next
    
    if fast is None:
        return l.head
        
    while fast.next:
        slow = slow.next
        fast = fast.next
    
    return slow.next

Error details
'NoneType' object has no attribute 'next'
python python-3.x data-structures linked-list singly-linked-list
1个回答
0
投票

这是我的解决方案,但你必须导入sys:

def find_kth_from_end(list,index):

slow_pointer=fast_pointer=list.head
counter=0
for _ in range(index):
    print("counter Pointer at: ", counter)
    if fast_pointer:
        print("Fast Pointer at: ", fast_pointer.value)
        fast_pointer=fast_pointer.next
        counter+=1
    elif fast_pointer is None and counter<(index-1):
         print("You have inputed a wrong index, you have given 
               extra",(index-counter))
         sys.exit(0)
for _ in range(index):
     if fast_pointer:
         slow_pointer = slow_pointer.next
         fast_pointer=  fast_pointer.next
return slow_pointer
© www.soinside.com 2019 - 2024. All rights reserved.