剑指offer---14---链表中倒数第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(head == null||k<=0)return null;
//创建尺子,移动后面的指针
ListNode pre = head;
ListNode last = head;
for(int i=1;i<k;i++){//因为要求尺子的长度为k那么就要移动k-1个位置
if(last.next !=null)last=last.next;
else return null;//否则说明链表的长度都还不到k,直接返回null
}
//开始移动尺子
while(last.next!=null){
last = last.next;
pre = pre.next;
}
return pre;
}
}