码迷,mamicode.com
首页 > 编程语言 > 详细

LeetCode82----删除排序链表中的重复元素 II

时间:2018-06-10 11:57:59      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:就是   元素   ica   ken   while   div   head   重复元素   turn   

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

示例 1:

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

示例 2:

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

代码如下:
public class MyLeetCode82 {
	public static class ListNode {
		int val;
		ListNode next;

		ListNode(int x) {
			val = x;
		}
	}

	public static ListNode deleteDuplicates(ListNode head) {
		if (head == null || head.next == null) {
			return head;
		}
		ListNode fakeNode = new ListNode(-1);
		ListNode root = fakeNode;
		ListNode prev = head;
		ListNode cur = head;
		while (cur != null && cur.next != null) {
			while (cur.next != null && cur.next.val == prev.val) {
				cur = cur.next;
			}
			if (cur == prev) {
				// 指针没动过,代表当前第一个就是不重复的
				root.next = prev;
				root = root.next;
			}
			prev = cur.next;
			cur = cur.next;
		}
		if (prev == cur && prev != null) {
			root.next = cur;
			root = root.next;
		}
		root.next = null;
		return fakeNode.next;
	}
}

  

 

LeetCode82----删除排序链表中的重复元素 II

标签:就是   元素   ica   ken   while   div   head   重复元素   turn   

原文地址:https://www.cnblogs.com/Booker808-java/p/9162260.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!