剑指offer 面试题15:链表中倒数第k个结点 程序报错
题目是这样的:题目: 输入一个链表,输出该链表中倒数第k哥结点。
为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。
例如一个链表有6个结点,从头结点开始它们的值依次是1,2,3,4,5,6.这个链表的倒数第3个结点是值为4的结点
我写的代码是:
import java.util.ArrayList; /* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public class Solution { public ListNode FindKthToTail(ListNode head,int k) { ArrayList<ListNode> arrayList=new ArrayList<ListNode>();//创建一个集合,将所有的ListNode放进去 if(head==null||k<=0){ return null; } int i=1; while(head!=null){ arrayList.add(head); if(head.next!=null){ head=head.next; i++;//得到arrayList的元素数目 }else{ break; } } if(i<k){ return null; }else{ return arrayList.get(i-k+1);//得到倒数第k个ListNode } } }
但是在牛客网的剑指offer专题里报错