/*
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;
int length = 1;
ListNode tmp = head;
//当tmp指向k-1个元素时,after和tmp一起移动,当tmp移到末尾时,after刚好到
//倒数k个位置
ListNode after = head;
while( tmp.next != null){
if(length < k){
tmp = tmp.next;
}
else if(length >= k){
tmp = tmp.next;
after = after.next;
}
length++;
}
//如果当k大于链表长度时当然要返回null
if( k > length ) return null;
return after;
}
}剑指Offer:链表中倒数第k个结点
最新推荐文章于 2021-07-25 10:44:17 发布
本文介绍了一种寻找链表中倒数第K个节点的方法,通过一次遍历实现,利用双指针技巧有效地解决了该问题。适用于链表长度未知的情况。

300

被折叠的 条评论
为什么被折叠?



