/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ classSolution{ public ListNode getKthFromEnd(ListNode head, int k){ if(head == null){ thrownew NullPointerException(); } int len = 0; for(ListNode i = head; i != null; i = i.next){ ++len; } if(k <= 0 || k > len){ thrownew IllegalArgumentException(); } int rank = len - k; ListNode ans = head; for(int i = 0; i < rank; ++i){ ans = ans.next; } return ans; } }