8000 删除排序链表中的重复元素 II · Issue #37 · louzhedong/blog · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

8000
Appearance settings
删除排序链表中的重复元素 II #37
Open
@louzhedong

Description

@louzhedong

习题

出处:LeetCode 算法第82题

给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。

示例 1:

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

示例 2:

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

思路

判断相邻的两个节点的值是否相等,如果相等则记录这个值,继续往下判断,把所有相同的都删除。

解答

/**
 * 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 == null || head.next == null) {
    return head;
  }

  var newHead = new ListNode(0);
  newHead.next = head;
  head = newHead;
  while (head.next != null && head.next.next != null) {
    if (head.next.val == head.next.next.val) {
      var temp = head.next.val;
      while (head.next != null && head.next.val == temp) {
        head.next = head.next.next;
      }
    } else {
      head = head.next;
    }
  }
  return newHead.next;
};

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0