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.

    /**
     * Definition for singly-linked list.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) {
     *         val = x;
     *         next = null;
     *     }
     * }
     */
    public class Solution {
        public ListNode deleteDuplicates(ListNode head) {
            ListNode newHead = new ListNode(0);
    		ListNode currentNode = newHead;
    		ListNode first = head;
    		boolean distinct = true;
    		while(first != null){
    			if(first.next != null){
    				if(first.val == first.next.val)
    					distinct = false;
    				else{
    					if(distinct){
    						currentNode.next = first;
    						currentNode = currentNode.next;
    					}
    					else
    						distinct = true;
    				}				
    			}
    			//the last node
    			else{
    				if(distinct){
    					currentNode.next = first;
    					currentNode = currentNode.next;
    				}
    			}
    			
    			first = first.next;			
    		}
    		currentNode.next = null;
    		newHead = newHead.next;
    		return newHead;    
        }
    }
    

      

  • 相关阅读:
    责任链模式(Chain of Responsibility)
    模板模式(Template Method)
    组合模式(Composite Pattern)
    原型模式(Prototype Pattern)
    策略模式(Strategy Pattern)
    状态模式(State Pattern)
    增删改查
    安卓sql
    安卓第三次作业
    安卓第四周作业
  • 原文地址:https://www.cnblogs.com/averillzheng/p/3767634.html
Copyright © 2011-2022 走看看