题解 | #链表中倒数最后k个结点#
链表中倒数最后k个结点
http://www.nowcoder.com/practice/886370fe658f41b498d40fb34ae76ff9
// 实质上就是找到链表中的倒数第k个节点
func FindKthToTail( pHead *ListNode , k int ) *ListNode {
// write code here
first := pHead
for first != nil && k > 0 {
first = first.Next
k--
}
// 如果 k > 0, 则 fast == nil, 那么 k 超过了链表节点个数,直接返回 nil
if k > 0 {
return nil
}
second := pHead
// 当面的first节点到达末尾的时候,second节点此时正好在倒数第k个节点的位置
for first != nil {
first = first.Next
second = second.Next
}
return second
}