import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * public ListNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param pHead ListNode类 * @param k int整型 * @return ListNode类 */ public ListNode FindKthToTail (ListNode pHead, int k) { // write code here //因为单链表没法从后往前遍历,所以我们肯定是从前往后找待返回的节点 //首先计算链表的长度 ArrayList<Integer> list = new ArrayList<>(); ListNode cur=pHead; while(cur!=null) { list.add(cur.val); cur=cur.next; } int len=list.size(); if(k>len){//返回空链表 ListNode tmp =null; return tmp; } int idx=len-k+1;//待返回的链表的节点idx(头节点为1) cur=pHead; for(int i=1;i<idx;i++) { cur=cur.next; } return cur; } }