Talk is cheap.
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func findKthToTail(pHead *ListNode, k int) *ListNode {
if pHead == nil || k <= 0 {
return nil
}
pre := pHead
post := pre
for ; k > 0; k-- {
if pre != nil {
pre = pre.Next
} else {
return nil
}
}
for pre != nil {
pre = pre.Next
post = post.Next
}
return post
}