链表中倒数第k个结点

来源:互联网 发布:java架构师视频百度云 编辑:程序博客网 时间:2024/06/07 01:19

1、来自牛客:链表中倒数第k个结点
输入一个链表,输出该链表中倒数第k个结点。
2、思路,设置两个指针,一个位置为0,另一个位置为k-1,同时进行一步步探测,当在k-1的指针走到末尾时,位置为0的指针为倒数第k的位置。
3、代码:

public ListNode FindKthToTail(ListNode head,int k) {        int  i, pos = k - 1;        if(head == null || pos < 0)            return null;        ListNode first = head, second = head;        //让探测指针先走k-1步        for(i = 0; i < pos; i++){            second = second.next;            if(second == null){                return null;            }        }        while(second.next != null){            first = first.next;            second = second.next;        }        return first;    }