链表中倒数第k个结点
题目描述
输入一个链表,输出该链表中倒数第k个结点。
思路
使用双指针来进行p、q 先让 p 先走 k 个位置,q 再跟着走,最后q就是倒数第k个结点。
(感觉题目中的k必须>=1),否则返回null。
但是有没有可能k可以为0 还可以为负,返回的是正数的数呢?
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode FindKthToTail(ListNode head,int k) {
ListNode p, q;
p = q = head;
int i = 0;
for (; p != null; i++) {
if (i >= k){
q = q.next;
}
p = p.next;
}
return i < k ? null : q;
}
}