删除链表中的节点

删除链表中等于给定值 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;
    }
}

首页 我的博客
粤ICP备17103704号