题目描述
输入一个链表,输出该链表中倒数第 k 个结点。
数据范围
链表长度范围 [0,30]。
样例
输入:链表:1->2->3->4->5 ,k=2
输出:4
解题思路
非常简单的数据结构题:
设原有链表长度为l,
将原有链表以ArrayList存储,
若k大于l,即返回NULL;否则
寻找并返回在ArrayList中索引为 l - k 的节点。
Java代码
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode findKthToTail(ListNode pListHead, int k) {
ArrayList<ListNode> s = new ArrayList<ListNode>();
for(ListNode i = pListHead;i != null;i = i.next)
s.add(i);
if(k > s.size()) return null;
else return s.get(s.size() - k);
}
}