题解 | #链表中倒数最后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 
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务