题意:删除数组中的指定元素
思路:在遍历链表时,记录前继结点和当前结点,如果胶继结点为空,说明是头结点,当前结点移动时,头结点也随着移动。当要找的结点在链表中时,将前继结点的后继结点修改为当前结点的后继结点,同时更新当前结点;当不是要找的结点时,更新前继结点和当前结点
代码如下:
class ListNode
{
int val;
ListNode next;
ListNode(int x) { val = x;}
}
class Solution
{
public ListNode removeElements(ListNode head, int val)
{
ListNode pre = null;
ListNode cur = head;
while (cur != null)
{
if (cur.val == val)
{
if (null == pre)
{
cur = cur.next;
head = cur;
continue;
}
else
{
pre.next = cur.next;
cur = cur.next;
continue;
}
}
pre = cur;
cur = cur.next;
}
return head;
}
}