c#实现:
原题链接:https://leetcode-cn.com/problems/remove-linked-list-elements/
执行用时: 172 ms, 在Remove Linked List Elements的C#提交中击败了58.33%的用户
/**
* Definition for singly-linked list.
* public class ListNode {
* public int val;
* public ListNode next;
* public ListNode(int x) { val = x; }
* }
*/
public class Solution {
public ListNode RemoveElements(ListNode head, int val) {
ListNode header = new ListNode(-1);
header.next = head;
ListNode cur = header;
while (cur.next!=null)
{
if (cur.next.val == val)
{
cur.next = cur.next.next;
}
else
{
cur = cur.next;
}
}
return header.next;
}
}
2020/3/17日:
public ListNode RemoveElements(ListNode head, int val) {
while (head != null && head.val == val)
{
head = head.next;
}
if (head != null)
{
ListNode curr = head.next;
ListNode prev = head;
while (curr != null)
{
if (curr.val == val)
{
prev.next = curr.next;
}
else
{
prev = curr;
}
curr = curr.next;
}
}
return head;
}
}