剑指offer22 输出链表倒数n个节点
输入一个链表,输出该链表中倒数第k个节点。
1、双指针
var getKthFromEnd = function(head, k) {
if(!head) return null
let first = head, last = head
while(k--){
last = last.next
}
while(last){
first = first.next
last = last.next
}
return first
};
时间复杂度O(n) 空间复杂度O(1)
2、顺序查找
var getKthFromEnd = function(head, k) {
if(!head) return null
let length = 0, cur = head
while(cur){
length++
cur = cur.next
}
cur = head
for(let i = 0; i < length - k; i++){
cur = cur.next
}
return cur
};
时间复杂度O(n) 空间复杂度O(1)