题目
删除链表倒数第n个数
栗子如下:
输入: {val:1,next:{val:2,next:{val:3,next:{val:4,next:{val:5,next:null}}}}} 2
输出:{val:1,next:{val:2,next:{val:3,next:{val:5,next:null}}}}
案例如下:
/**
* @param {ListNode} head
* @param {number} n
* @return {ListNode}
* 1、利用空间换时间,利用数组存储
* 2、两个指针,第一个指针走到n步,第二个指针开始走,当第一个指针走完,第二个指针就是倒数第n个数
*/
var removeNthFromEnd = function(head, n) {
let re = [];
while(head){
re.push(head);
head = head.next;
}
if(n == re.length){
return re[1] || null;
}else if(n == 1){
re[re.length - 2].next = null;
return re[0] || null;
}else{
re[re.length - n -1 ].next = re[re.length - n + 1];
return re[0];
}
};