Skip to content

Latest commit

 

History

History
57 lines (46 loc) · 1005 Bytes

File metadata and controls

57 lines (46 loc) · 1005 Bytes

No.83 删除排序链表中的重复元素

难度: easy

给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。

示例

示例 1:

输入: 1->1->2
输出: 1->2

示例 2:

输入: 1->1->2->3->3
输出: 1->2->3

解题思路

使用双指针,判断前后值是否相等。如果相等,则rear指针向后移动,如果不想等,则prev指针和rear指针同时向后移动。

代码如下:

/**
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */
/**
 * @param {ListNode} head
 * @return {ListNode}
 */
var deleteDuplicates = function(head) {
    if (!head)
      return head;
    let prev = head;

    let rear = prev.next;
    
    while (rear) {
      if (prev.val == rear.val) {
        prev.next = rear.next;
        rear = rear.next;
      } else {
        rear = rear.next;
        prev = prev.next;
      }
    }
  return head;
};