題目描述
輸入一個鏈表,輸出該鏈表中倒數第k個結點。
思路:兩個指針,先讓第一個指針和第二個指針都指向頭結點,然後再讓第一個指針到達第k個節點。然後兩個指針同時往後移動,當第一個結點到達末尾的時候,第二個結點所在位置就是倒數第k個節點了。
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode FindKthToTail(ListNode head,int k) {
if(k<=0){return null;}
ListNode firstNode = head;
ListNode secondNode = head;
int count = 0;
boolean flag = false;
while(secondNode!=null){
count++;
if(count==k){
flag = true;
}
if(flag == true && secondNode.next!=null){
firstNode = firstNode.next;
}
secondNode = secondNode.next;
}
if(count>=k){
return firstNode;
}else{
return null;
}
}
}