题目链接: 剑指Offer 22. 链表中倒数第k个节点
题目描述:
输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。
解法思路:
快慢指针:慢指针不动,快指针先走k步,然后快慢指针一起向后走,当快指针走到末尾时,慢指针所指的就是倒数第k个节点。
代码:
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func getKthFromEnd(head *ListNode, k int) *ListNode {
p := head
q := head
for i := 0 ; i < k ; i ++ {
p = p.Next
}
for p!= nil {
p = p.Next
q = q.Next
}
return q
}
标签:ListNode,22,Next,链表,节点,倒数第,指针
From: https://www.cnblogs.com/lxing-go/p/17660380.html