14.链表中倒数第k个节点

Posted yjx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了14.链表中倒数第k个节点相关的知识,希望对你有一定的参考价值。

题目描述:

??输入一个链表,输出该链表中倒数第k个结点。

思路分析:

??设置两个指针,一个fast一个slow,都从链表头开始,让fast先走k步,然后两个指针一起走,当fast走到尾部,那么slow指针指向的就是倒数第K个节点。

代码:

public class Solution {
    public ListNode FindKthToTail(ListNode head,int k) {
        ListNode fast=head;
        ListNode slow=head;
        if(head==null)
            return null;
        int i=0;
        while(fast!=null){
            fast=fast.next;
            i++;
            if(i==k)
                break;
        }
        if(i!=k)
            return null;
        while(slow!=null&&fast!=null){
            slow=slow.next;
            fast=fast.next;
        }
        return slow;
    }
}

以上是关于14.链表中倒数第k个节点的主要内容,如果未能解决你的问题,请参考以下文章

剑指Offer-14.链表中倒数第k个结点(C++/Java)

剑指JZ14_链表中倒数第K个节点

JZ3.从尾到头打印链表;JZ14.链表中倒数第K个节点;JZ15.反转链表;JZ16.合并两个有序链表;JZ36.两个链表的第一个公共节点;JZ55.链表中环的入口节点;JZ56.删除链表中重复节点

JZ3.从尾到头打印链表;JZ14.链表中倒数第K个节点;JZ15.反转链表;JZ16.合并两个有序链表;JZ36.两个链表的第一个公共节点;JZ55.链表中环的入口节点;JZ56.删除链表中重复节点

22 链表中倒数第k个节点(第3章 高质量的代码-代码的鲁棒性)

刷题记录-剑指offer22:链表中倒数第k个节点