Skip to content

83 删除排序链表中的重复元素 #18

Closed
@sailei1

Description

@sailei1

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

示例 1:

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

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

解法:
1 当前节点的值跟 下一个节点的值相同
2 当前节点的下一个节点 指向下一个下一个的节点 (注意是循环)
3 递归查找 重复 1 2 步
4 找到最后一个节点 跳出

/**
 * 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;}  //尾部返回
      while(head.next&&head.val === head.next.val){
            head.next=head.next.next;    //   当前值跟下一个值 一样时, 跳过当前值
      }
     // console.log(head.val);
    deleteDuplicates(head.next); //依次递归
    return head
    
};

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