LeetCodeEasy-【面試題22. 鏈表中倒數第k個節點】

輸入一個鏈表,輸出該鏈表中倒數第k個節點。爲了符合大多數人的習慣,本題從1開始計數,即鏈表的尾節點是倒數第1個節點。例如,一個鏈表有6個節點,從頭節點開始,它們的值依次是1、2、3、4、5、6。這個鏈表的倒數第3個節點是值爲4的節點。

示例:
給定一個鏈表: 1->2->3->4->5, 和 k = 2.
返回鏈表 4->5.

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof
著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。

思路1:快慢指針法

利用兩個指針,讓它們間隔爲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:
        tail = head
        for i in range(k):
            tail = tail.next
        while tail != None:
            head = head.next
            tail = tail.next
        return head
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章