葡京娱乐开元棋牌_开元棋牌靠谱吗_f1娱乐开元棋牌先锋网 葡京娱乐开元棋牌_开元棋牌靠谱吗_f1娱乐开元棋牌片段及技术文章聚合

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

建立两个指针,一快一慢,fast,slow

public ListNode FindKthToTail(ListNode head,int k) {
    if (head == null) {
        //如果节点为null,返回null
        return null;
    }
    int size = size(head);
    if (k <= 0 || k > size) {
        //如果 k 小于等于0或者 k 大于链表节点个数则为错误
        return null;
    }
    ListNode fast = head;
    ListNode slow = head;
    for (int i = 0; i < k; i++) {
        //先往后移动 k 个节点
        fast = fast.next;
    }
    while (fast != null) {
        fast = fast.next;
        slow = slow.next;
    }
    return slow;
}

    public int size(ListNode head) {
        int size = 0;
        for (ListNode node = head; node != null; node = node.next) {
            size++;
        }
        return size;
    }

原文地址:输入一个链表,输出该链表中倒数第k个结点