剑指offer:查找链表中倒数第k个结点

来源:互联网 发布:ubuntu16.04安装python 编辑:程序博客网 时间:2024/06/06 05:21

解题思路:其实查找链表中倒数第k个结点,可以转化为顺数第几个结点。架设链表长度为n,那么我们会发现,顺数结点p+k = n+1;所以顺数结点p = n-k+1;这样的话,答案很容易就出来了。

public ListNode FindKthToTail(ListNode head, int k){    if(head == null)return null;    ListNode ret = head;//因为要遍历链表计算链表的长度,所以需要保存一下    int len = 0 ;    while(head != null){    len++;    head = head.next;    }    if(k>len)return null;    int p = len+1-K;    //因为此时ret指向了头指针的第一个结点,所以从1开始。    for(int i=0;i<p;i++){    ret = ret.next;    }    return ret;}
原创粉丝点击