您的位置:首页 > 其它

LeetCode -- 删除链表中值为k的元素

2015-07-23 09:17 267 查看
本题目比较直接,一次遍历遇到匹配的元素直接删除(通过n.next = n.next.next)就可以了,只是需要考虑到:
1.首节点的情况
2.末节点的情况

以下为实现:
public ListNode RemoveElements(ListNode head, int val) {

// null list
if(head == null){
return null;
}
// constains only one node
if(head.next == null && head.val == val){
return null;
}

//remove first nodes
while(head.val == val){
if(head.next == null){
break;
}
head = head.next;
}
var tmp = head;

// nodes in between
while(head.next != null){
if(head.next.val == val){
head.next = head.next.next;
}
else{
head = head.next;
}
if(head.next == null){
break;
}
}
// last node
if(head.val == val){
return null;
}

// restore head node
head = tmp;

return head;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: