【剑指offer】14 链表中倒数第k个结点
题目地址:链表中倒数第k个结点
题目描述
输入一个链表,输出该链表中倒数第k个结点。
题目示例
输入:
1,{1,2,3,4,5}
返回值:
{5}
解法分析
可以使用快慢指针方法解题,设定一个快指针和一个慢指针,两者相距k-1个结点,然后快慢指针同时前进,当快指针到达链表尾时,慢指针正好指到链表倒数第k个结点。
代码
1 function FindKthToTail(head, k) 2 { 3 // write code here 4 if (head === null || k <= 0) return null; 5 var slowNode = head; 6 var fastNode = head; 7 while (--k) { 8 if (fastNode.next !== null) { 9 fastNode = fastNode.next; 10 } else { 11 return null; 12 } 13 } 14 while (fastNode.next !== null) { 15 slowNode = slowNode.next; 16 fastNode = fastNode.next; 17 } 18 return slowNode; 19 }
执行结果