给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:
dummy = ListNode(0,head)
first = head
second = dummy
print(dummy)
print(first)
print(second)
print("————————分界线————————")
for i in range(n):
first = first.next
print(first)
print("————————分界线————————")
while first:
first = first.next
second = second.next
print(first)
print(second)
print("————————分界线————————")
second.next = second.next.next
print(second)
return dummy.next
关于小错误:最开始写second.next = second.next.next时,我写成second= second.next.next,最后的运行结果并没有把相应的节点删除,现在想一下的确是并没有改动下一个节点,只是把下下个节点的值赋给了second,就好像只是修改了具体的指针指向,但是并没有修改指针中的值一样。