Remove Linked List Elements
两个版本,一个原始版(196ms),一个略微优化过的版本(176ms)
感觉leetcode对js的支持还是有些问题,两版本提交的结果还是有些差异的。
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} head
* @param {number} val
* @return {ListNode}
*/
var removeElements = function(head, val) {
var node = [];
var proc =function(head,val){
if(head.val !=val){
node.push(head.val);
}
if(!!head.next){
proc(head.next,val);
}
};
if(!!head){
proc(head,val);
}
return node;
};
运行结果是196ms
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} head
* @param {number} val
* @return {ListNode}
*/
var removeElements = function(head, val) {
var node = {next:[]},header = node;
while(!!head){
if(head.val != val){
node.next = head;
node = head;
}
head = head.next;
}
node.next = null;
return header.next;
};
运行结果176ms 放弃使用递归,和数组操作,换来20毫秒