第五天是关于链表js的初步应用
第一题是删除中间节点
最巧妙的方法就是快慢指针
var middleNode = function(head) {
var slow = head
var fast = head
while(fast&&fast.next){
slow = slow.next
fast = fast.next.next
}
return slow
};
以快指针为循环条件,在循环内部操控慢指针
第二题是删除链表指定节点
同样是快慢指针的方法
var removeNthFromEnd = function(head, n) {
let fast=head,
sort=head
while(n-- >0){
fast=fast.next
}
if(fast==null) return head.next
while(fast.next){
fast=fast.next
sort=sort.next
}
sort.next=sort.next.next
return head
};