链表返回倒数第几个数
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章 高质量的代码-代码的鲁棒性)
LeetCode-19-Remove Nth Node From End of List