82. Remove Duplicates from Sorted List II

Difficulty:
Related Topics:
Similar Questions:

Problem

Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.

Example 1:

Input: 1->2->3->3->4->4->5
Output: 1->2->5

Example 2:

Input: 1->1->1->2->3
Output: 2->3

Solution

/**
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */
/**
 * @param {ListNode} head
 * @return {ListNode}
 */
var deleteDuplicates = function(head) {
  var newHead = new ListNode(0);
  var now = newHead;
  var tmp = head;
  var val = 0;

  while (tmp) {
    val = tmp.val;
    if (tmp.next && tmp.next.val === val) {
      tmp = tmp.next;
      while (tmp && tmp.val === val) tmp = tmp.next;
    } else {
      now.next = tmp;
      now = tmp;
      tmp = tmp.next;
      now.next = null;
    }
  }

  return newHead.next;
};

Explain:

nope.

Complexity: