链表返回倒数第几个数

Posted ping2yingshi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了链表返回倒数第几个数相关的知识,希望对你有一定的参考价值。

此博客链接: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;

    }
}

 

                

以上是关于链表返回倒数第几个数的主要内容,如果未能解决你的问题,请参考以下文章

22 链表中倒数第k个节点(第3章 高质量的代码-代码的鲁棒性)

19. 删除链表的倒数第 N 个结点(先后指针)

19. 删除链表的倒数第 N 个结点(先后指针)

LeetCode-19-Remove Nth Node From End of List

倒数第几个(本质上是将倒数 转化成(两个点之间)具体的距离)

删除链表中倒数第n个节点