思路(快慢指针法)
快慢指针的思想。我们将第一个指针front指向链表的第k+1 个节点,第二个指针back指向链表的第一个节点,此时指针front与back二者之间刚好间隔 k个节点。此时两个指针同步向后走,当第一个指针front走到链表的尾部空节点时,则此时back指针刚好指向链表的倒数第k个节点。
代码
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} head
* @param {number} k
* @return {ListNode}
*/
var getKthFromEnd = function(head, k) {
var front = head;
for(let i = 1; i <= k; i++) {
front = front.next;
}
var back = head;
while(front) {
front = front.next;
back = back.next;
}
return back;
};