Leetcode Remove Linked List Elements 删除链表中的元素
2015-05-05 20:55
447 查看
题目:
Remove all elements from a linked list of integers that have value val.Example
Given: 1 --> 2 --> 6 --> 3 --> 4 --> 5 --> 6, val = 6
Return: 1 --> 2 --> 3 --> 4 --> 5
分析:
这道题目看起来很简单,但是做的时候很容易犯错误。需要注意考虑下面这几点:1.链表的第一个元素可能是需要删除的元素,那么表头元素将发生改变,这种情况下使用dummy node比较方便。
2.链表的最后一个元素需要删除,循环条件设置不对时容易出现空指针。
Java实现代码:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ public class Solution { public ListNode removeElements(ListNode head, int val) { if(head == null) return head; ListNode dummy = new ListNode(0); dummy.next = head; ListNode pre = dummy; ListNode node = head; while(node!=null) { if(node.val==val) { pre.next = node.next; node = pre.next; } else { pre = node; node = node.next; } } return dummy.next; } }
相关文章推荐
- Leetcode:203 Remove Linked List Elements(删除链表中的某个元素))
- LeetCode Remove Linked List Elements 删除链表元素
- Leetcode 单链表删除Remove Linked List Elements
- 【LeetCode-面试算法经典-Java实现】【203-Remove Linked List Elements(删除单链表中的元素)】
- LeetCode 203 Remove Linked List Elements(移除链表元素)(*)
- [Lintcode] Remove Linked List Elements 删除链表中的元素
- [LeetCode] Remove Linked List Elements 移除链表元素
- [LeetCode-203] Remove Linked List Elements(链表节点删除)
- (LeetCode)Remove Linked List Elements --- 删除节点元素
- Remove Linked List Elements 删除链表中指定元素
- [C++]Remove Linked List Elements 删除链表中的元素
- leetcode Remove Linked List Elements 移除链表中指定元素
- LeetCode OJ 之 Remove Linked List Elements(删除链表中的元素)
- LeetCode Delete Node in a Linked List (删除链表中的元素)
- 【LeetCode-面试算法经典-Java实现】【082-Remove Duplicates from Sorted List II(排序链表中删除重复元素II)】
- [leetcode] Remove Nth Node From End of List 删除链表开始的第n个元素
- [LeetCode] Remove Duplicates from Sorted List 删除排序链表中的重复元素
- Leetcode Remove Duplicates from Sorted List 删除链表中的重复元素
- Remove Nth Node From End of List 链表删除倒数第N个元素@LeetCode
- [lintcode]Remove Linked List Element 删除链表中的元素