题解 | #链表中倒数最后k个结点#

链表中倒数最后k个结点

https://www.nowcoder.com/practice/886370fe658f41b498d40fb34ae76ff9

public ListNode FindKthToTail (ListNode pHead, int k) {
        //参数校验
        if(pHead == null) return null;
        //获取链表的长度
        ListNode head = pHead;
        int length = getListNodeLength(pHead);
        int index = length - k + 1;
        if(index > 0){
            int count = 1;
            while(index != count){
                head = head.next;
                count ++ ;
            }
            return head;
        }else{
            return null;
        }
}
private int getListNodeLength(ListNode pHead) {
        //记录链表的个数
        int count = 1;
        while(pHead.next != null){
            pHead = pHead.next;
            count ++ ;
        }
        return count;
}

解题思路:
1、计算出链表的总长度length
2、倒数第k个节点就是正数length-k+1位置的节点,只要保证这个位置存在就行,找到该位置的节点将其输出

全部评论

相关推荐

10-25 00:32
香梨想要offer:感觉考研以后好好学 后面能乱杀,目前这简历有点难
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-26 18:54
说等下个版本吧的发呆爱好者很贪睡:佬最后去了哪家呀
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务