174、 删除排序链表中的重复元素 II

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

示例 1:

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

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

首先定义一个根节点,dummy,然后next指向head,之后进入循环,然后我们需要做的就是不断更新node的next节点本题还有一种做法就是全部遍历出来放入到list中然后我们再连接,第一种方法没写出来,,,,

class Solution {
    public ListNode deleteDuplicates(ListNode head) {
    ListNode dummy = new ListNode(-1);
	        dummy.next = head;
	        ListNode node = dummy;
	        while (node != null && node.next != null)
	        {
	            ListNode nextNode = node.next;
	            if (nextNode.next == null)
	                break;
	            if (nextNode.val != nextNode.next.val)
	            {
	                node = nextNode;
	            }
	            else {
	                while (nextNode.next != null && nextNode.val == nextNode.next.val){
	                    nextNode = nextNode.next;
	                }
	            }
	            node.next = nextNode.next;
	        }
	        return dummy.next;
    }
}
上一篇:JavaExample09-单向链表的倒置


下一篇:剑指Offer - 12_删除链表的节点