Problem
Implement an algorithm to find the kth to last element of a singly linked list.
Solution
1 public static ListNode findElement(ListNode head, int k) { 2 if(k <= 0) return null; 3 4 ListNode fast = head; 5 ListNode slow = head; 6 7 for(int i=0; i<k-1; i++) { 8 if(fast == null) return null; //edge case 9 fast = fast.next; 10 } 11 12 //fast = null 13 if(fast == null) { 14 return null; 15 } 16 17 while(fast.next != null) { 18 fast = fast.next; 19 slow = slow.next; 20 } 21 22 return slow; 23 }
时间: 2024-11-21 02:42:21