删除链表中等于给定值 val 的所有节点。
示例: 输入: 1->2->6->3->4->5->6, val = 6 输出: 1->2->3->4->5
/**
* 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 MyHead = new ListNode(0);//建一个头结点,应对要删除first结点的情况,达到一致的普遍性
MyHead.next = head;
ListNode preNode = MyHead;
while(head != null)
{
if(head.val == val)
{
//移除结点,上一个结点不变
preNode.next = head.next;
}
else
{
preNode = head;//上一个结点推进
}
head = head.next;//日常推进
}
return MyHead.next;
}
}