1. # Definition for singly-linked list.
    2. # class ListNode:
    3. # def __init__(self, x):
    4. # self.val = x
    5. # self.next = None
    6. class Solution:
    7. def removeNthFromEnd(self, head: ListNode, n: int) -> ListNode:
    8. dummy = ListNode(0)
    9. dummy.next = head
    10. pre, cur = dummy, dummy
    11. for _ in range(n):
    12. pre = pre.next
    13. while pre.next is not None:
    14. pre = pre.next
    15. cur = cur.next
    16. cur.next = cur.next.next if cur.next is not None else None
    17. return dummy.next
    1. # Definition for singly-linked list.
    2. # class ListNode:
    3. # def __init__(self, x):
    4. # self.val = x
    5. # self.next = None
    6. class Solution:
    7. def getKthFromEnd(self, head: ListNode, k: int) -> ListNode:
    8. if head.next is None or k == 0:
    9. return head
    10. i = 0
    11. pre = cur = head
    12. while pre is not None:
    13. if k > i:
    14. i += 1
    15. pre = pre.next
    16. else:
    17. pre = pre.next
    18. cur = cur.next
    19. return cur if k == i else None