剑指 Offer 22. 链表中倒数第k个节点

链接:https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof/

设置双指针,后面一个指针找到第k个结点之后,前面的一个指针开始移动,直至后面的直至达到链表末尾的时候,前面的指针就刚好在链表的倒数第k个结点的位置

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def getKthFromEnd(self, head: ListNode, k: int) -> ListNode:
        p = head
        i = 1
        while i <= k:
            p = p.next
            i += 1
        while p:
            p = p.next
            head = head.next
        return head

 

更多推荐