zoukankan      html  css  js  c++  java
  • LeetCode——Remove Duplicates from Sorted List II

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

    For example,
    Given 1->2->3->3->4->4->5, return 1->2->5.
    Given 1->1->1->2->3, return 2->3.

    原题链接:https://oj.leetcode.com/problems/remove-duplicates-from-sorted-list-ii/

    题目:给定一个已排序的链表,删除反复的元素。仅仅留下源链表中唯一出现的那些元素。

    思路:首先防止把头节点删除。构建一个虚拟的头节点。

    因为是已排序的。相等的元素就在相邻的位置上。发现有相邻的元素。则指针依次向后指,直到没有相等的相邻元素为止。

    	public ListNode deleteDuplicates(ListNode head) {
    		if (head == null || head.next == null)
    			return head;
    
    		ListNode dummy = new ListNode(0);
    		dummy.next = head;
    		head = dummy;
    
    		while (head.next != null && head.next.next != null) {
    			if (head.next.val == head.next.next.val) {
    				int val = head.next.val;
    				while (head.next != null && head.next.val == val) {
    					head.next = head.next.next;
    				}
    			} else {
    				head = head.next;
    			}
    		}
    
    		return dummy.next;
    	}
    
    	// Definition for singly-linked list.
    	public class ListNode {
    		int val;
    		ListNode next;
    
    		ListNode(int x) {
    			val = x;
    			next = null;
    		}
    	}
    



  • 相关阅读:
    React之Antd组件<Input />属性defaultValue问题记录。
    java多继承问题
    python多继承问题
    React之state
    概念题
    修复linux的yum源
    stl
    java
    python
    各种执行方式
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/6857901.html
Copyright © 2011-2022 走看看