这是一个黑客挑战问题,这是问题https://www.hackerrank.com/challenges/insert-a-node-at-a-specific-position-in-a-linked-list/problem的链接,虽然这个问题可能已经在这里回答了,我希望自己解决它,并接近这样做,除了一些问题,我坚持。
这是我的代码
def insertNodeAtPosition(head, data, position):
if position is 0:
head = SinglyLinkedListNode(data, head)
return
count = 0
while head:
if count == position - 1:
newNode = SinglyLinkedListNode(data)
newNode.next = head.next
head.next = newNode
break
head = head.next
print(head.data)
count +=1
return head
它返回正确的结果减去位置- 1元素之前的元素,例如,它返回的不是16 13 17,而是13 17,或者它返回的不是1 2 3 4 5 7 6,而是5 7 6。
我错过了一些东西,但我似乎无法指出来。请帮帮我处理链表时千万不要弄乱头。请取一个变量头,并使用它来迭代。
my_iter = head
然后在你所有的循环中使用这个my_iter。
插入零的代码返回一个头,而不链接到当前的零。