链表返回倒数第几个数

此博客链接:https://www.cnblogs.com/ping2yingshi/p/13358209.html

题目链接:https://leetcode-cn.com/problems/kth-node-from-end-of-list-lcci/submissions/

实现一种算法,找出单向链表中倒数第 k 个节点。返回该节点的值。

注意:本题相对原题稍作改动

示例:

输入: 1->2->3->4->5 和 k = 2
输出: 4

题解:

        思路:

                1.求出链表的总长度。

                 2.用总长度减去给的k,得到从链表头开始第几个是倒数的k的节点值。

注意:一开始是使用新定义的p指针判断链表的长度,再重新找整数第几个节点时,需要使用头节点或者再重新定义一个节点。

代码:

class Solution {
    public int kthToLast(ListNode head, int k) {
        ListNode p=null;
        p=head;
        int len=0;
        while(p!=null)
        {
              p=p.next;
              len++;
        }
       for(int i=1;i<=len-k;i++)
       {
          head=head.next;
       }
return head.val;

    }
}

                

原文地址:https://www.cnblogs.com/ping2yingshi/p/13358209.html