思路:先將鏈表放進list裏面,利用了list的有序性。然後要比較與k與鏈接表長度之間的關係
代碼如下:
package checkArray;
import java.util.ArrayList;
import java.util.List;
import javax.crypto.NullCipher;
public class Test11 {
public static void main(String[] args) {
// TODO Auto-generated method stub
ListNode head=new ListNode(1);
head.next=new ListNode(2);
head.next.next=new ListNode(3);
int k=1;
ListNode listNode=FindKthToTail(head,k);
System.out.println(listNode.val);
}
public static ListNode FindKthToTail(ListNode head,int k) {
if(head==null) return null;
//判斷鏈表的長度與k的長度
int headLength=0;
List<ListNode> list=new ArrayList<>();
while (head != null) {
list.add(head);
head = head.next;
headLength++;
}
//System.out.println(headLength);
if(headLength>=k&&k>0) {
return list.get(list.size()-k);
}else {
return null;
}
}
}
class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}