输入一个链表,输出该链表中倒数第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(head == null) return null;
if(k <= 0) return null;
ListNode node = head;
for(int i = 0; i < k-1; i++){
if(node.next == null) return null;
node = node.next;
}
ListNode res = head;
while(node.next != null){
res = res.next;
node = node.next;
}
return res;
}
}
例如:求倒数第三个节点
当node为倒数第一个即node.next == null时,res在node之前两个。所以,node先向后移两下,此时head在node之前两个,node和head(res)一起移动,当node称为倒数第一个节点时,head就是倒数第三个节点。
网友评论