链表中倒数第k个节点


解题:这个好像是某年考研题,大概思路就是先遍历链表用一个计数器++,当计数值=k时,再用一个指针遍历链表,两个遍历相差k位,当第一个链表遍历完了,第二个链表遍历到倒数第k个元素。
举例:一个人先跑距离为k,另一个人开始起跑,当第一个人到终点时第二个人距离终点距离为k

代码

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode getKthFromEnd(ListNode head, int k) {
    int cnt=-1;
    ListNode head1=head,res=head;
    while(head1!=null){
        cnt++;
        head1=head1.next;
        if(cnt>=k){
        res=res.next;
        }
    }
    return res;
    }
}

不一样的烟火
原文地址:https://www.cnblogs.com/cstdio1/p/13296079.html