/**
 * 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) {
        if (head == null)
            {
                return null;
            }
            else
            {
                var temp = head;
                ListNode last = null;
                while (temp != null)
                {
                    if (temp.val != val)
                    {
                        last = temp;
                        temp = temp.next;
                    }
                    else
                    {
                        if (temp.next != null)
                        {
                            temp.val = temp.next.val;
                            temp.next = temp.next.next;
                        }
                        else
                        {
                            if (last != null)
                            {
                                last.next = null;
                            }
                            break;
                        }
                    }
                }
                if (head.next != null && head.next.val == val)
                {
                    head.next = null;
                }
                if (head.val == val)
                {
                    head = null;
                }


                return head;
            }
    }
}

https://leetcode.com/problems/remove-linked-list-elements/#/description

posted on 2017-04-25 11:27  Sempron2800+  阅读(112)  评论(0编辑  收藏  举报